首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

问一个winform下datagrid的有关问题

2012-03-07 
问一个winform下datagrid的问题比如我有两列ab112233...我想修改了a的值后,b马上也跟着修改我用了CurrentC

问一个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下
呵呵

热点排行