当前位置:编程学习 > C#/ASP.NET >>

datagridview的datasource中的值改变,激发什么事件?

我有一个datagridview,绑定了一个datatable,绑定后datatable中的值改变,我想使数据改变的行切换另一种背影颜色,我需要用什么事件才能激发呢?另datatable不需重新绑定. --------------------编程问答-------------------- CellValueChanged事件


        private void dgvTest_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            this.dgvTest.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
        }
--------------------编程问答-------------------- System.Data.DataTable table = new System.Data.DataTable();
table.RowChanged += new System.Data.DataRowChangeEventHandler(table_RowChanged);

void table_RowChanged(object sender, System.Data.DataRowChangeEventArgs e)
        {
            // Get row index by property e.Row
        } --------------------编程问答--------------------
引用 1 楼 diffmaker 的回复:
CellValueChanged事件

C# codeprivatevoiddgvTest_CellValueChanged(objectsender, DataGridViewCellEventArgs e)
        {this.dgvTest.Rows[e.RowIndex].DefaultCellStyle.BackColor=Color.Red;
        }

. --------------------编程问答-------------------- 学习一下。正需要这些资料。 --------------------编程问答-------------------- 来参观的,帮顶. --------------------编程问答--------------------
引用 1 楼 diffmaker 的回复:
CellValueChanged事件 


C# code
        private void dgvTest_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            this.dgvTest.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
        }


这样好像并不能激发这个事件,我在做时因为datasource已经绑定了,只是datatable内部的数据值改变,datagridview好像并没有发现其cell中的值已经改变了. --------------------编程问答-------------------- DataBindingComplete事件!! --------------------编程问答--------------------
引用 2 楼 Gregorian 的回复:
System.Data.DataTable table = new System.Data.DataTable(); 
table.RowChanged += new System.Data.DataRowChangeEventHandler(table_RowChanged); 

void table_RowChanged(object sender, System.Data.DataRowChangeEventArgs e) 
        { 
            // Get row index by property e.Row 
        }


我试了一下,e.Row获取不到行号,只能获取到一个实际改变过的dataRow. --------------------编程问答--------------------
引用 7 楼 justindreams 的回复:
DataBindingComplete事件!!


我的datatable完成绑定时数据并没有改变,是完成了绑定后,其他的进程改变了我的datatable. --------------------编程问答--------------------
引用 9 楼 zhudaifu 的回复:
引用 7 楼 justindreams 的回复:
DataBindingComplete事件!! 
 

我的datatable完成绑定时数据并没有改变,是完成了绑定后,其他的进程改变了我的datatable.

用DataBindingComplete事件没问题,你试一试吧,只要改变datatable,这个事件就会触发 --------------------编程问答--------------------
引用 6 楼 zhudaifu 的回复:
引用 1 楼 diffmaker 的回复:
CellValueChanged事件 


C# code 
        private void dgvTest_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
        { 
            this.dgvTest.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red; 
        } 
 

这样好像并不能激发这个事件,我在做时因为datasource已经绑定了,只是datatable内部的数据值改变,datagridview好像并没有发现其cell中的值…


你的datatable内部的数值是怎么改变的?不是在DataGridView中修改的? --------------------编程问答-------------------- 你的DataTable中的数据是被另一个进程修改的?
------------------------
这样的话修改完后的dataTable应该不会马上在你的datagridview上体现出来吧?
也就是说你要重新绑定才会体现出来. --------------------编程问答--------------------
引用 12 楼 lovehongyun 的回复:
你的DataTable中的数据是被另一个进程修改的? 
------------------------ 
这样的话修改完后的dataTable应该不会马上在你的datagridview上体现出来吧? 
也就是说你要重新绑定才会体现出来.


如果修改datatable里面的数据,必须重新bind --------------------编程问答--------------------
引用 13 楼 jietuan 的回复:
引用 12 楼 lovehongyun 的回复:
你的DataTable中的数据是被另一个进程修改的? 
------------------------ 
这样的话修改完后的dataTable应该不会马上在你的datagridview上体现出来吧? 
也就是说你要重新绑定才会体现出来. 
 

如果修改datatable里面的数据,必须重新bind


我是用BackgroundWorker来更新datatable的,用主进程在更新主界面上的进度条等.当datatable中的值改变时,datagridview界面中的值也就随之改变了,不需重新Bind,我试过了重新Bind,但也没有激发上面的那些事件.
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,