WINFROM中DATAGRIDVIEW问题 我在一个 datagridview查出一些数据通过DataGridViewCheckBoxColumn多选后按确定按钮 然后弹出另一个窗体把这些数据传到这个窗体的datagridview中并显示出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把第一个DATAGRIDVIEW设置成public的(属性),然后第二个页面就可以操作了,是父子关系吧············ //form1 List<DataGridViewRow> dgvrows = new List<DataGridViewRow>(); foreach (DataGridViewRow row in this.dataGridView1.Rows) { //假设你第一列是CheckBox if ((bool)row.Cells[0].Value)//选中 { dgvrows.Add(row); } } //form2 this.dataGridView1.DataSource = dgvrows; //Form1 DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("列1")); dt.Columns.Add(new DataColumn("列2")); for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Cells["check列"].Value == null) { continue; } if ((bool)(dataGridView1.Rows[i].Cells["check列"].Value) == true) { DataRow dr = dt.NewRow(); dt.Rows.Add(dr); dt.Rows[i]["列1"] = dataGridView1.Rows[i].Cells["你要存的列名1"].Value.ToString(); dt.Rows[i]["列2"] = dataGridView1.Rows[i].Cells["你要存的列名2"].Value.ToString(); } } }/*大概就是这样 你只需要把这个dt传到另外一个窗体中就可以了 */Form2 f2 = new Form2();f2.Dt = dt;f2.Show();/***************************************///Form2://Form2中写一个公共属性 用于接收Form1的dtprivate DataTable dt;public Datatable Dt{ get{return dt;} set{dt = value;}}Load事件中写datagridview1.DataSource = dt; DataRow dr = dt.NewRow(); dt.Rows.Add(dr); dt.Rows[i]["列1"] = dataGridView1.Rows[i].Cells["你要存的列名1"].Value.ToString(); dt.Rows[i]["列2"] = dataGridView1.Rows[i].Cells["你要存的列名2"].Value.ToString(); dt.Rows[i]["列1"] 这个里面的"列1"是索引吧 我checkbox 是0 然后从1开始是我要的值 可我运行老说找不到1 读取dll版本号 请教各位有关用户体验的问题(另,如果想把录音时的声音强度用柱状图或波形图表示出来,该如何实现那?) C#如何动态加载事件? 请教将datatable某行某列的值置为Null怎么写? 可不可以在发布WINFORM应用程序时,设置程序每次启动都检查是否有更新,如果有就自动更新,开发环境:VS2005 C#如何把横向多叉树变为纵向多叉树 C# 聊天系统 求教: 在2003上安装完VS.NET后,不能建WEB应用程 为什么Web控件没有Left,Top等属性啊? 好人们呀,帮我看看,你们通通是好人 TreeView如何激发TreeNodeCheckChanged事件 多线程下载
//form1
List<DataGridViewRow> dgvrows = new List<DataGridViewRow>();
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
//假设你第一列是CheckBox
if ((bool)row.Cells[0].Value)//选中
{
dgvrows.Add(row);
}
}
//form2
this.dataGridView1.DataSource = dgvrows;
//Form1
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("列1"));
dt.Columns.Add(new DataColumn("列2"));
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells["check列"].Value == null)
{
continue;
}
if ((bool)(dataGridView1.Rows[i].Cells["check列"].Value) == true)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
dt.Rows[i]["列1"] = dataGridView1.Rows[i].Cells["你要存的列名1"].Value.ToString();
dt.Rows[i]["列2"] = dataGridView1.Rows[i].Cells["你要存的列名2"].Value.ToString();
}
}
}/*大概就是这样 你只需要把这个dt传到另外一个窗体中就可以了 */Form2 f2 = new Form2();
f2.Dt = dt;
f2.Show();/***************************************/
//Form2://Form2中写一个公共属性 用于接收Form1的dtprivate DataTable dt;
public Datatable Dt
{
get{return dt;}
set{dt = value;}
}Load事件中写
datagridview1.DataSource = dt;
dt.Rows.Add(dr);
dt.Rows[i]["列1"] = dataGridView1.Rows[i].Cells["你要存的列名1"].Value.ToString();
dt.Rows[i]["列2"] = dataGridView1.Rows[i].Cells["你要存的列名2"].Value.ToString();
dt.Rows[i]["列1"] 这个里面的"列1"是索引吧 我checkbox 是0 然后从1开始是我要的值 可我运行老说找不到1