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

怪事:DataTable 与DataGridView 同步有关问题

2012-04-11 
怪事:DataTable 与DataGridView 同步问题DataTable 与DataGridView 绑定了,在 DataTable 的 ColumnChanged

怪事:DataTable 与DataGridView 同步问题
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);            }        }            } 

热点排行