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

来帮小弟我看一句死循环

2012-01-18 
来帮我看一句死循环不理解下面这句为何死循环?privatevoidmyDataGridView1_CellValueChanged(objectsender

来帮我看一句死循环
不理解下面这句为何死循环?
  private   void   myDataGridView1_CellValueChanged(object   sender,   DataGridViewCellEventArgs   e)
                {
                        MessageBox.Show(DateTime.Now.Date.ToString());
                        this.myDataGridView1.Rows[e.RowIndex].Cells[15].Value   =   DateTime.Now.Date;
                }

[解决办法]
this.myDataGridView1.Rows[e.RowIndex].Cells[15].Value = DateTime.Now.Date;
这条语句会重新触发CellValueChanged事件,,,所以是死循环...
[解决办法]
这必然是死循环.而且是,在你触发changed事件以后开始的
this.myDataGridView1.Rows[e.RowIndex].Cells[15].Value = DateTime.Now.Date;
因为你有上面这句.
简单理解是:在你第一次触发changed事件后,首先输出一个弹出框.然后更改里面的值.这时候又触发了changed事件,如此反复死循环就开始了
[解决办法]
改变Cell的值触发CellValueChanged事件,CellValueChanged事件处理中又改变Cell的值
当然死循环~
[解决办法]
我的意思是
if (this.myDataGridView1.Rows[e.RowIndex].Cells[15].Value != DateTime.Now.Date)
{
this.myDataGridView1.Rows[e.RowIndex].Cells[15].Value = DateTime.Now.Date;
}
当条件不符合时,就不会执行赋值操作,也就不会再触发CellValueChanged事件了吧。

我没怎么用过.net,正在学习,不知道是不是正确!

热点排行