C#如何将DataGirdView1中勾选中checkbox多行 添加到另一个DatagridView2中急用要用代码。
3个回答
展开全部
// 变量
DataTable dtable =new DataTable(); //中间接收表
DataRow row; //定义行
变量dt 为DatagridView1的数据源
事件代码
Button_Click事件中代码
dtable = dt.Clone(); //先让中间表数据列DatagridView1的表的数据列相同
foreach (DataGridViewRow Row in dataGridView1.Rows) //DataGridView全部行
{
//判断是否选中
if (Row.Cells["Checked"].Value!= null && (bool)Row.Cells["Checked"].Value!= false)
{
// ["Checked"]为勾选列的列名
DataRowView drv = Row.DataBoundItem as DataRowView; //获取行中所有数据
row = (DataRow)drv.Row; //将dgv行中数据添加到定义行中
dtable.Rows.Add(row.ItemArray); //添加就可以了。
}
else
{
continue;//继续找
}
}
dataGridView2.DataSource = dtable; //最后绑定就行了
看看是不是你想要的。如果是就给分,不是的话 咱们还可以再加鈡嘛。
DataTable dtable =new DataTable(); //中间接收表
DataRow row; //定义行
变量dt 为DatagridView1的数据源
事件代码
Button_Click事件中代码
dtable = dt.Clone(); //先让中间表数据列DatagridView1的表的数据列相同
foreach (DataGridViewRow Row in dataGridView1.Rows) //DataGridView全部行
{
//判断是否选中
if (Row.Cells["Checked"].Value!= null && (bool)Row.Cells["Checked"].Value!= false)
{
// ["Checked"]为勾选列的列名
DataRowView drv = Row.DataBoundItem as DataRowView; //获取行中所有数据
row = (DataRow)drv.Row; //将dgv行中数据添加到定义行中
dtable.Rows.Add(row.ItemArray); //添加就可以了。
}
else
{
continue;//继续找
}
}
dataGridView2.DataSource = dtable; //最后绑定就行了
看看是不是你想要的。如果是就给分,不是的话 咱们还可以再加鈡嘛。
更多追问追答
追问
不好意思呵,是我没有写清楚,
如何将DataGirdView1窗口中勾选中checkbox多行 添加到另一个窗口DatagridView2中
追答
就上面的代码继续写:
dtable 是Frm1中的变量 上文代码有介绍 自己翻翻
那么,你在Frm2中定义一个属性
//frm2中的属性
public DataTable frm2dtTable
{
get { return dtfrm2Table; }
set { dtfrm2Table = value; }
}
在你点确认按钮时需要将
Frm2 frm2 =new Frm2();
frm2.frm2dtTable =dtable;
//
//Frm2中datagridView1
//
datagridView1.Datasource =Dtfrm2Table;
frm2.ShowDialog();
这样就可以实现你要的效果了。 哥们应该就是这些东西吧。
这里主要是用DataTable 做了一个中间的数据传递,获取第一表中的数据,保存到dtable,然后将数据再传给Frm2中的Frm2dtTable。
展开全部
private void Form1_Load(object sender, EventArgs e) { DataBound(); } /// <summary> /// 绑定数据 /// </summary> private void DataBound() { SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123321;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select * from jobs"); DataSet ds=new DataSet(); da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { this.dataGridView1.DataSource = ds.Tables[0].DefaultView; } } /// <summary> /// 删除按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender EventArgs e) { for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Cells["选择"].EditedFormattedValue.ToString().Equals("True")) { //删除吧 DataBound(); } } } /// <summary> /// 全选+反选 /// </summary> /// <param name="......余下全文>>
追问
不好意思呵,是我没有写清楚,
如何将DataGirdView1窗口中勾选中checkbox多行 添加到另一个窗口DatagridView2中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
check事件中获取e的行号,将整行数据add到gridview2中
更多追问追答
追问
不代明白
追答
假设checkbox在第一例,事件大致代码如下。
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ((bool)dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
{
dataGridView2.Rows.add(dataGridView1.Rows[e.RowIndex]);//直接写的,你试试这个思路。代码可能有错。
}
else
{
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询