怪事:DataTable 与DataGridView 同步有关问题
怪事:DataTable 与DataGridView 同步问题
DataTable 与DataGridView 绑定了,
在 DataTable 的 ColumnChanged 事件中用代码更改了某一列的内容,表示一列有改动另一列也跟着改动,
可是DataGridView显示的另一列并不马上改过来,当光标移到下一列或其它位置才显示改动后的值。
有什么办法可以立即显示呢? 不用移动光标位置。
------解决方案--------------------
不知道你用的是CheckBox,CheckBox有点特殊,刚查了下MSDN,以下代码差不多和你的意思一样
DataTable 与DataGridView 绑定了,
在 DataTable 的 ColumnChanged 事件中用代码更改了某一列的内容,表示一列有改动另一列也跟着改动,
可是DataGridView显示的另一列并不马上改过来,当光标移到下一列或其它位置才显示改动后的值。
有什么办法可以立即显示呢? 不用移动光标位置。
------解决方案--------------------
不知道你用的是CheckBox,CheckBox有点特殊,刚查了下MSDN,以下代码差不多和你的意思一样
- C# code
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.m_DataSet.Table.ColumnChanged += new DataColumnChangeEventHandler(Table_ColumnChanged); } void Table_ColumnChanged(object sender, DataColumnChangeEventArgs e) { if (e.Column.ColumnName == "A") { if ((bool)e.Row["A"] == true) { e.Row["B"] = "T"; } else { e.Row["B"] = "F"; } } } private void m_GridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0) { this.m_GridView.CommitEdit(DataGridViewDataErrorContexts.Commit); } } private void m_GridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0 && e.RowIndex !=-1) { this.m_GridView.UpdateCellValue(1, e.RowIndex); } } private void m_GridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0) { this.m_GridView.CommitEdit(DataGridViewDataErrorContexts.Commit); } } }