111,125
社区成员
发帖
与我相关
我的任务
分享
private void dgvItemDetailsA_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc;
for (int i = 0; i < dgvItemMXA.Columns.Count; i++)
{
dc = new DataColumn();
dc.ColumnName = dgvItemMXA.Columns[i].HeaderText.ToString();
dt.Columns.Add(dc);
}
for (int j = 0; j < dgvItemMXA.Rows.Count; j++)
{
DataRow dr = dt.NewRow();
for (int x = 0; x < dgvItemMXA.Columns.Count; x++)
{
dr[x] = dgvItemMXA.Rows[j].Cells[x].Value;
}
dt.Rows.Add(dr);
}
dsItemMX.Tables.Add(dt);//dsItemMX全局变量
dgvcItemMX();//清空显示新表
}
int preRow = 0;
private void dgvItemDetailsA_CellClick(object sender, DataGridViewCellEventArgs e)
{//显示已有
if (( e.RowIndex != dgvItemDetailsA.Rows.Count-1 ) && (e.RowIndex != preRow) )
{
this.dgvItemMXA.Columns.Clear();//列头清空下
dgvItemMXA.DataSource = dsItemMX.Tables[ e.RowIndex ];
}
preRow = e.RowIndex;
}
我是这么写的,但是显示不了已经编辑过的[/quote]
CellClick事件应该是没问题,但列头清空不需要,直接重新绑定数据源就可以
上面有点乱,断点调试下,逻辑不复杂,有什么问题很容易发现
private void dgvItemDetailsA_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc;
for (int i = 0; i < dgvItemMXA.Columns.Count; i++)
{
dc = new DataColumn();
dc.ColumnName = dgvItemMXA.Columns[i].HeaderText.ToString();
dt.Columns.Add(dc);
}
for (int j = 0; j < dgvItemMXA.Rows.Count; j++)
{
DataRow dr = dt.NewRow();
for (int x = 0; x < dgvItemMXA.Columns.Count; x++)
{
dr[x] = dgvItemMXA.Rows[j].Cells[x].Value;
}
dt.Rows.Add(dr);
}
dsItemMX.Tables.Add(dt);//dsItemMX全局变量
dgvcItemMX();//清空显示新表
}
int preRow = 0;
private void dgvItemDetailsA_CellClick(object sender, DataGridViewCellEventArgs e)
{//显示已有
if (( e.RowIndex != dgvItemDetailsA.Rows.Count-1 ) && (e.RowIndex != preRow) )
{
this.dgvItemMXA.Columns.Clear();//列头清空下
dgvItemMXA.DataSource = dsItemMX.Tables[ e.RowIndex ];
}
preRow = e.RowIndex;
}
我是这么写的,但是显示不了已经编辑过的