按钮怎么实现前一页后一页 现在想做个界面,有两个按钮实现前一页后一页功能,界面是不是要用panel来实现呢,还有这两个按钮的代码界面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考http://blog.csdn.net/downmoon/article/details/6177224http://blog.csdn.net/gisfarmer/article/details/2771166 版主的都是实现datagrid的,我的设计是这样的,界面上有text显示信息,界面下面是个grid显示从表信息,我想点了前一页之后整个一起翻页,devexpress有个这个控件,只是不太会,我不想要上面的保存添加功能,有人会弄么 不太明白楼主要表达的是什么意思。 TEXT显示信息,又表示什么信息呢 。要整个一期翻页的话 完全不需要devexpress吧 照 我的理解 楼主可能是想这样的 比如 有类似的一张主表A : 用户ID ,用户姓名 ,家庭住址等等。 附表为用户ID表,用户姓名表,家庭住址表。 这样的么? TEXT 输出 上面的A的 一个东西,然后在GRID里就显示这附表的内容。 是这样吧? 那只要绑定 就好了 基本和单表查询没什么区别。 界面显示的就是主表和从表的信息,翻页怎么做啊写个简单的给你 用来读取文件的public partial class Form1 : Form { List<string> t_name = new List<string>(); List<string> info = new List<string>(); int pageNo = 0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.button1.Enabled = false; this.button2.Enabled = false; info.Clear(); t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI"); this.dataGridView1.ColumnCount = 1; this.dataGridView1.RowCount = 1; textBox1.Text = Tname(pageNo); if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(0), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } //文件名取得 string Tname(int no) { return t_name[no]; } //按钮是否可按 判断 void btn_enable() { if (pageNo < t_name.Count - 1) { this.button2.Enabled = true; } else { this.button2.Enabled = false; } if (pageNo > 0) { this.button1.Enabled = true; } else { this.button1.Enabled = false; } } // 上一页按下 private void button1_Click(object sender, EventArgs e) { pageNo--; info.Clear(); textBox1.Text = Tname(pageNo); this.dataGridView1 = new DataGridView(); this.dataGridView1.ColumnCount = 0; this.dataGridView1.RowCount = 1; if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } // 下一页按下 private void button2_Click(object sender, EventArgs e) { pageNo++; info.Clear(); textBox1.Text = Tname(pageNo); this.dataGridView1.ColumnCount = 0; this.dataGridView1.RowCount = 1; if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.Paint(e.ClipBounds, DataGridViewPaintParts.All); string w = ""; if (e.RowIndex >= 0) w = info[e.RowIndex]; e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor); e.Handled = true; }有什么不理解再说 思路就是这么做的 代码整理一下 稍微 简洁一点 public partial class Form1 : Form { List<string> t_name = new List<string>(); List<string> info = new List<string>(); int pageNo = 0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.button1.Enabled = false; this.button2.Enabled = false; t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI"); this.dataGridView1.ColumnCount = 1; this.dataGridView1.RowCount = 1; data_get(); } //文件名取得 string Tname(int no) { return t_name[no]; } //按钮是否可按 判断 void btn_enable() { if (pageNo < t_name.Count - 1) { this.button2.Enabled = true; } else { this.button2.Enabled = false; } if (pageNo > 0) { this.button1.Enabled = true; } else { this.button1.Enabled = false; } } //数据取得 void data_get() { info.Clear(); textBox1.Text = Tname(pageNo); if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); dataGridView1.Refresh(); } // 上一页按下 private void button1_Click(object sender, EventArgs e) { pageNo--; data_get(); } // 下一页按下 private void button2_Click(object sender, EventArgs e) { pageNo++; data_get(); } private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.Paint(e.ClipBounds, DataGridViewPaintParts.All); string w = ""; if (e.RowIndex >= 0) w = info[e.RowIndex]; e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor); e.Handled = true; } } 要把界面上的text也一起换下一条信息,是不是要绑定dataset,又该怎么弄呢 界面显示的就是主表和从表的信息,翻页怎么做啊写个简单的给你 用来读取文件的public partial class Form1 : Form { List<string> t_name = new List<string>(); List<string> info = new List<string>(); int pageNo = 0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.button1.Enabled = false; this.button2.Enabled = false; info.Clear(); t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI"); this.dataGridView1.ColumnCount = 1; this.dataGridView1.RowCount = 1; textBox1.Text = Tname(pageNo); if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(0), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } //文件名取得 string Tname(int no) { return t_name[no]; } //按钮是否可按 判断 void btn_enable() { if (pageNo < t_name.Count - 1) { this.button2.Enabled = true; } else { this.button2.Enabled = false; } if (pageNo > 0) { this.button1.Enabled = true; } else { this.button1.Enabled = false; } } // 上一页按下 private void button1_Click(object sender, EventArgs e) { pageNo--; info.Clear(); textBox1.Text = Tname(pageNo); this.dataGridView1 = new DataGridView(); this.dataGridView1.ColumnCount = 0; this.dataGridView1.RowCount = 1; if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } // 下一页按下 private void button2_Click(object sender, EventArgs e) { pageNo++; info.Clear(); textBox1.Text = Tname(pageNo); this.dataGridView1.ColumnCount = 0; this.dataGridView1.RowCount = 1; if (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } btn_enable(); } private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.Paint(e.ClipBounds, DataGridViewPaintParts.All); string w = ""; if (e.RowIndex >= 0) w = info[e.RowIndex]; e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor); e.Handled = true; }有什么不理解再说 思路就是这么做的不理解啊 哪里不理解呢?把流程列一下给你:1, 把你主表的东西取出来 放到一个LIST里面(比如 主表取出来 为表A,B,C)2,根据主表取出来的表名去取附表的信息TEXT显示当前的附表面(A,B,C),下面的GRID显示的附表的内容而我写的临时代码 ,为了简单 用的是取文件的,t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI"); t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI"); 相当于主表取出来的 表A,B,Cif (File.Exists(Tname(pageNo))) { StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default); while (r_reader.Peek() >= 0) { string w = r_reader.ReadLine(); info.Add(w); } r_reader.Close(); this.dataGridView1.RowCount = info.Count; } else { MessageBox.Show(Tname(0) + ": 此文件不存在"); } 相当于去取附表信息(我这是在取文件里面的内容)。private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.Paint(e.ClipBounds, DataGridViewPaintParts.All); string w = ""; if (e.RowIndex >= 0) w = info[e.RowIndex]; e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor); e.Handled = true; }用描绘的方式给GRID 赋值 因为你换表的时候,GRID的值是要重新改变的 你的上一页 和 下一页 无非是 你去显示主表LIST里的 上一个 附表的内容 或 下一个附表的内容 关于C# ini文件问题 vs2005 判断某目录是否为空 DirectoryInfo 的问题? 题外:能低格使用usb口的移动硬盘么? c# GDI 画坐标轴问题 一个windows服务的安装问题 程序设计 急,在线等,一个鸟数据库问题 找不到指定的对象导出程序-------OPC Client 排分!不止100分……有多少送多少。 请问哪里有Antechinus C# Editor下载 VS2012自带的 LocalDB windows服务程序 关于 URL 重写问题,求指点
http://blog.csdn.net/gisfarmer/article/details/2771166
照 我的理解 楼主可能是想这样的 比如 有类似的一张主表A : 用户ID ,用户姓名 ,家庭住址等等。 附表为用户ID表,用户姓名表,家庭住址表。 这样的么? TEXT 输出 上面的A的 一个东西,然后在GRID里就显示这附表的内容。 是这样吧? 那只要绑定 就好了 基本和单表查询没什么区别。
写个简单的给你 用来读取文件的public partial class Form1 : Form
{
List<string> t_name = new List<string>();
List<string> info = new List<string>();
int pageNo = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.button1.Enabled = false;
this.button2.Enabled = false;
info.Clear();
t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI");
this.dataGridView1.ColumnCount = 1;
this.dataGridView1.RowCount = 1;
textBox1.Text = Tname(pageNo);
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(0), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} //文件名取得
string Tname(int no)
{
return t_name[no];
} //按钮是否可按 判断
void btn_enable()
{
if (pageNo < t_name.Count - 1)
{
this.button2.Enabled = true;
}
else
{
this.button2.Enabled = false;
}
if (pageNo > 0)
{
this.button1.Enabled = true;
}
else
{
this.button1.Enabled = false;
}
} // 上一页按下
private void button1_Click(object sender, EventArgs e)
{
pageNo--;
info.Clear();
textBox1.Text = Tname(pageNo);
this.dataGridView1 = new DataGridView();
this.dataGridView1.ColumnCount = 0;
this.dataGridView1.RowCount = 1;
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} // 下一页按下
private void button2_Click(object sender, EventArgs e)
{
pageNo++;
info.Clear();
textBox1.Text = Tname(pageNo);
this.dataGridView1.ColumnCount = 0;
this.dataGridView1.RowCount = 1;
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
string w = "";
if (e.RowIndex >= 0)
w = info[e.RowIndex];
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor);
e.Handled = true;
}有什么不理解再说 思路就是这么做的
{
List<string> t_name = new List<string>();
List<string> info = new List<string>();
int pageNo = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.button1.Enabled = false;
this.button2.Enabled = false;
t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI");
this.dataGridView1.ColumnCount = 1;
this.dataGridView1.RowCount = 1;
data_get();
} //文件名取得
string Tname(int no)
{
return t_name[no];
} //按钮是否可按 判断
void btn_enable()
{
if (pageNo < t_name.Count - 1)
{
this.button2.Enabled = true;
}
else
{
this.button2.Enabled = false;
}
if (pageNo > 0)
{
this.button1.Enabled = true;
}
else
{
this.button1.Enabled = false;
}
}
//数据取得
void data_get()
{
info.Clear();
textBox1.Text = Tname(pageNo);
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
dataGridView1.Refresh();
} // 上一页按下
private void button1_Click(object sender, EventArgs e)
{
pageNo--;
data_get();
} // 下一页按下
private void button2_Click(object sender, EventArgs e)
{
pageNo++;
data_get();
} private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
string w = "";
if (e.RowIndex >= 0)
w = info[e.RowIndex];
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor);
e.Handled = true;
}
}
写个简单的给你 用来读取文件的public partial class Form1 : Form
{
List<string> t_name = new List<string>();
List<string> info = new List<string>();
int pageNo = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.button1.Enabled = false;
this.button2.Enabled = false;
info.Clear();
t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI");
this.dataGridView1.ColumnCount = 1;
this.dataGridView1.RowCount = 1;
textBox1.Text = Tname(pageNo);
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(0), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} //文件名取得
string Tname(int no)
{
return t_name[no];
} //按钮是否可按 判断
void btn_enable()
{
if (pageNo < t_name.Count - 1)
{
this.button2.Enabled = true;
}
else
{
this.button2.Enabled = false;
}
if (pageNo > 0)
{
this.button1.Enabled = true;
}
else
{
this.button1.Enabled = false;
}
} // 上一页按下
private void button1_Click(object sender, EventArgs e)
{
pageNo--;
info.Clear();
textBox1.Text = Tname(pageNo);
this.dataGridView1 = new DataGridView();
this.dataGridView1.ColumnCount = 0;
this.dataGridView1.RowCount = 1;
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} // 下一页按下
private void button2_Click(object sender, EventArgs e)
{
pageNo++;
info.Clear();
textBox1.Text = Tname(pageNo);
this.dataGridView1.ColumnCount = 0;
this.dataGridView1.RowCount = 1;
if (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} btn_enable();
} private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
string w = "";
if (e.RowIndex >= 0)
w = info[e.RowIndex];
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor);
e.Handled = true;
}有什么不理解再说 思路就是这么做的
不理解啊
把流程列一下给你:
1, 把你主表的东西取出来 放到一个LIST里面(比如 主表取出来 为表A,B,C)
2,根据主表取出来的表名去取附表的信息
TEXT显示当前的附表面(A,B,C),下面的GRID显示的附表的内容
而我写的临时代码 ,为了简单 用的是取文件的,t_name.Add("C:\\sika00\\SYSTEM\\HSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\WSYS.INI");
t_name.Add("C:\\sika00\\SYSTEM\\除外患者.INI"); 相当于主表取出来的 表A,B,Cif (File.Exists(Tname(pageNo)))
{
StreamReader r_reader = new StreamReader(Tname(pageNo), System.Text.Encoding.Default);
while (r_reader.Peek() >= 0)
{
string w = r_reader.ReadLine();
info.Add(w);
}
r_reader.Close();
this.dataGridView1.RowCount = info.Count;
}
else
{
MessageBox.Show(Tname(0) + ": 此文件不存在");
} 相当于去取附表信息(我这是在取文件里面的内容)。private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
string w = "";
if (e.RowIndex >= 0)
w = info[e.RowIndex];
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; TextRenderer.DrawText(e.Graphics, w, dataGridView1.Font, e.CellBounds, dataGridView1.ForeColor);
e.Handled = true;
}用描绘的方式给GRID 赋值 因为你换表的时候,GRID的值是要重新改变的
你的上一页 和 下一页 无非是 你去显示主表LIST里的 上一个 附表的内容 或 下一个附表的内容