Winform的Datagridview中SelectionChanged事件在第一次绑定时为什么会执行三次?

leiaming 2008-11-25 05:17:28
请高手指点
...全文
1032 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿敲月下码 2008-12-31
  • 打赏
  • 举报
回复
绑定前一次 数据显示一次 选择第一行一次(第一行默认选中)

可能就是这三次,因为这三个步骤都有SelectionChanged事件参与
redapple2008 2008-12-31
  • 打赏
  • 举报
回复
持续关注......
leiaming 2008-11-25
  • 打赏
  • 举报
回复
有什么办法限制第一次只执行一次吗
Old_Mouse 2008-11-25
  • 打赏
  • 举报
回复
刚才简单测试了下,第一次确实是三次,第二次开始是两次。应该是开始为空的缘故。
Old_Mouse 2008-11-25
  • 打赏
  • 举报
回复
这是在绑定的时候C#内部执行的代码。

public void set_DataSource(object value)
{
if (value != this.DataSource)
{
this.CurrentCell = null;
if (this.dataConnection == null)
{
this.dataConnection = new DataGridViewDataConnection(this);
this.dataConnection.SetDataConnection(value, this.DataMember);
}
else
{
if (this.dataConnection.ShouldChangeDataMember(value))
{
this.DataMember = "";
}
this.dataConnection.SetDataConnection(value, this.DataMember);
if (value == null)
{
this.dataConnection = null;
}
}
this.OnDataSourceChanged(EventArgs.Empty);
}
}



leiaming 2008-11-25
  • 打赏
  • 举报
回复
按1楼的说法也会执行两次,不知道什么原因
starrain95 2008-11-25
  • 打赏
  • 举报
回复
下断点,用F11单步调试吧,应该能找出原因来
leiaming 2008-11-25
  • 打赏
  • 举报
回复
有没有其它方法,为什么它会触发多次
heyu1000 2008-11-25
  • 打赏
  • 举报
回复
这个问题只有你自己才知道了,呵呵
可能是不小心绑定了多次,最好是把代码帖出来,
bloodish 2008-11-25
  • 打赏
  • 举报
回复
不明白,但是你可以在绑定前注销事情,绑定后重新注册事件
dgv.SelectionChanged -= dgv_SelectionChanged;
//dgv.DataSource = dataTable;
dgv.SelectionChanged += dgv_SelectionChanged;

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧