问一个winform下datagrid的问题
比如我有两列
a b
1 1
2 2
3 3
...
我想修改了a的值后,b马上也跟着修改
我用了CurrentCellChanged事件.里面写了以下2句
int row = this.dataGrid1.CurrentCell.RowNumber;
this.dataGrid1[row, 1] = this.dataGrid1[row, 0];
现在我按左右键可以搞定,但是按上下键不会变
我调试了一下,发现在事件里CurrentCell已经变成现在的了,所有前面的没有更新
请问有没有什么好方法实现
能有代码更好
谢谢高手先
------解决方案--------------------for(,,)
{
}
------解决方案--------------------现在我按左右键可以搞定,但是按上下键不会变
==========================================
按上下键会变!
------解决方案--------------------没看明白什么上下键?
------解决方案--------------------ding
------解决方案--------------------用表达式,视图的表达式!
第二列的值=第一列的!
------解决方案--------------------private void dataGrid1_CurrentCellChanged(object sender, EventArgs e)
{
int row = this.dataGrid1.CurrentCell.RowNumber;
this.dataGrid1[row, 1] = this.dataGrid1[row, 0];
}
楼主仔细看看这段代码,按上下键的话就换行了,原先修改的那行当然就不会变了,可以用个for循环,把所有的b都赋值为a
------解决方案--------------------在rowvalidating()里也要进行修改
------解决方案--------------------噢,好像datagrid没有rowvalidating,为什么还用datagrid??
------解决方案--------------------复写个DataGridTextBoxColumn
然后放protected override void Paint事件里。
------解决方案--------------------肯定可以的
太强了!
------解决方案--------------------可以通过expression解决
------解决方案--------------------假设数据源为MyDs
DataColumn col = Myds.Tables[0].Columns[1];
col.Expression= "a ";
this.DataGrid1.DataSource=MyDs.Tables[0];
------解决方案--------------------先Mark下
呵呵