最近希望实现个功能,找不到好的办法
问题是:
winform中form1上一个按钮点击后,弹出form2窗口,在form2窗口上将数据库的一个表单的前两列显示出来,前面附有复选框,如图
数据库内容
form2图
点击form2上按钮,将选中的数据生成新的数据库表或是赋予一个参数
请教各路高手如何实现或同工异曲的途径,谢谢!
问题是:
winform中form1上一个按钮点击后,弹出form2窗口,在form2窗口上将数据库的一个表单的前两列显示出来,前面附有复选框,如图
数据库内容
form2图
点击form2上按钮,将选中的数据生成新的数据库表或是赋予一个参数
请教各路高手如何实现或同工异曲的途径,谢谢!
private static DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("学号", typeof(Int32));
dt.Columns.Add("姓名", typeof(string));
dt.Columns.Add("年龄", typeof(Int32)); DataRow dr = null;
dr = dt.NewRow();
dr["学号"] = 1;
dr["姓名"] = "张三峰";
dr["年龄"] = 13;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["学号"] = 2;
dr["姓名"] = "无常";
dr["年龄"] = 12;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["学号"] = 3;
dr["姓名"] = "李四";
dr["年龄"] = 13;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["学号"] = 4;
dr["姓名"] = "王五";
dr["年龄"] = 11;
dt.Rows.Add(dr); return dt;
}
在form_load事件中动态添加checkbox
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = GetData();
for (int i = 0; i < dt.Rows.Count; i++)
{
CheckBox cb = new CheckBox();
cb.Name = "checkbox" + i;
cb.Location = new Point(10, 20 * i);
cb.Text = dt.Rows[i]["姓名"].ToString();
this.Controls.Add(cb);
}
}
在另外一个按钮中就可以得到选中的checkbox的name和text。
private void button1_Click(object sender, EventArgs e)
{
foreach (Control ctl in this.Controls)
{
if (ctl is CheckBox)
{
CheckBox cb = ctl as CheckBox;
if (cb.Checked)
{
MessageBox.Show("Name:" + cb.Name + "\tText:" + cb.Text);
}
}
}
}