WinForm中如何实现两个DataGridView的数据联动? 我现在又两个datagridview 然后我想要点击第一个datagridview中的一个单元格的数据,把它显示到第二个datagridview中,请高手指教,最好能给我个小例子谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看datagridview 有个选择行事件 点事件 把ID传给第2个datagridview 然后绑定代码有点多,所以你按我这个思路尝试着做做 得到选中行,返回的是一个行的对象,然后把这一行添加到第二个gridview中dataTable dt=grid.datasorcse as dataTable;dataRow r=dt.newRow();r[]=选中行的对象[];r[]=...grid.datasorcse=dt; 跟新第二个DataGridView的数据源DataBind事件 if (dataGridView2.CurrentRow == null) return; DataGridViewRow dgv2 = dataGridView2.CurrentRow; if (dataGridView1.CurrentRow == null) return; DataGridViewRow dgv = dataGridView1.CurrentRow; int rowIndexNew = dgv.Index; string dgv2Text = dgv2.Cells[0].Value.ToString().Trim(); for (int i = 0; i < dataGridView1.RowCount; i++) { DataGridViewRow dgv1 = dataGridView1.Rows[i]; int rowIndexOld = dgv1.Index; string dgv1Text = dgv1.Cells[0].Value.ToString().Trim(); if (dgv1Text == dgv2Text) { if (rowIndexNew == 0) { dgv1.Cells[1].Value = Convert.ToInt32(dataGridView1.Rows[0].Cells[1].Value) + 10; } else { int scoreUp =Convert.ToInt32(dataGridView1.Rows[rowIndexNew - 1].Cells[1].Value); int scoreDown = Convert.ToInt32(dataGridView1.Rows[rowIndexNew].Cells[1].Value); Convert.ToInt32(dgv1.Cells[1].Value); dgv1.Cells[1].Value = (scoreUp + scoreDown) / 2; } //开始移动数据 var tempRow = dt.NewRow(); tempRow.ItemArray = dt.Rows[rowIndexOld].ItemArray; dt.Rows.RemoveAt(rowIndexOld); dt.Rows.InsertAt(tempRow, rowIndexNew); for (int k = dataGridView1.Rows.Count - 1; k >= 0; k--) { dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[0].Value = dataGridView1.Rows[k].Cells[0].Value; dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[1].Value = dataGridView1.Rows[k].Cells[1].Value; } break; } } 项目中引用问题 结构的用法,各位大虾!! 子窗口最大化问题 关于文件写入avs脚本的问题 第三方控件 加载 求救:窗体序列化问题 ABOUT CRYSTAL REPORT 如何用SQL得知一个SQL2000数据库的MDF文件的全路径 太恐怖了~~VC软件包不可用或未注册! 关于StatusBarPanel? 根据域名获取不同IP地址服务器页面的问题 SQL查询年统计
dataTable dt=grid.datasorcse as dataTable;
dataRow r=dt.newRow();
r[]=选中行的对象[];
r[]=
...
grid.datasorcse=dt;
DataBind事件
DataGridViewRow dgv2 = dataGridView2.CurrentRow;
if (dataGridView1.CurrentRow == null) return;
DataGridViewRow dgv = dataGridView1.CurrentRow;
int rowIndexNew = dgv.Index;
string dgv2Text = dgv2.Cells[0].Value.ToString().Trim();
for (int i = 0; i < dataGridView1.RowCount; i++)
{
DataGridViewRow dgv1 = dataGridView1.Rows[i];
int rowIndexOld = dgv1.Index;
string dgv1Text = dgv1.Cells[0].Value.ToString().Trim();
if (dgv1Text == dgv2Text)
{
if (rowIndexNew == 0)
{
dgv1.Cells[1].Value = Convert.ToInt32(dataGridView1.Rows[0].Cells[1].Value) + 10;
}
else
{
int scoreUp =Convert.ToInt32(dataGridView1.Rows[rowIndexNew - 1].Cells[1].Value);
int scoreDown = Convert.ToInt32(dataGridView1.Rows[rowIndexNew].Cells[1].Value);
Convert.ToInt32(dgv1.Cells[1].Value);
dgv1.Cells[1].Value = (scoreUp + scoreDown) / 2;
}
//开始移动数据
var tempRow = dt.NewRow();
tempRow.ItemArray = dt.Rows[rowIndexOld].ItemArray;
dt.Rows.RemoveAt(rowIndexOld);
dt.Rows.InsertAt(tempRow, rowIndexNew);
for (int k = dataGridView1.Rows.Count - 1; k >= 0; k--)
{
dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[0].Value = dataGridView1.Rows[k].Cells[0].Value;
dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[1].Value = dataGridView1.Rows[k].Cells[1].Value;
}
break;
}
}