3

正如它在倾斜中所说:

  • 有一个列表框
  • 当我在
  • 第一个SelectedValueChanged事件包含我点击的值
  • 有时会有第二个SelectedValueChanged事件包含列表中的第一个值

我发现它添加了这些代码:

这是我的设计师包含的内容:

    this.listBox1.SelectedValueChanged += 
new System.EventHandler(this.listBox1_SelectedValueChanged);

这是我的课程包含的内容:

public class myControl : UserControl
{

  private void listBox1_SelectedValueChanged(object sender, EventArgs e)
  {
     StackTrace st = new StackTrace(true);
  }                                    /// I put breakpoint that line to look at st
}

我看不到第二个事件在哪里被触发。在堆栈中有大量的系统代码,没有什么与我自己的代码非常相关。但我可以根据需要在这里过去。

我唯一没有真正掌握的是UserControl上下文。也许可以围绕这个做点什么。

有了这个,你知道为什么我点击一次时会接到两次电话吗?

在King King的问题后编辑:

场景是:

  • 影响listBox1.DataSource通话SelectedValueChanged

    1. listBox1_SelectedValueChanged 发件人中: {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
  • 在通话中点击第三个值listBox1两次SelectedValueChanged

    1. listBox1_SelectedValueChanged 发件人中: {SelectedItem = "3rd value"} object {System.Windows.Forms.ListBox}
    2. listBox1_SelectedValueChanged 发件人中: {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
  • 之后只选择第一个值

4

1 回答 1

0

听起来您对 2 个或更多其他事件有疑问,您正在选择第三个元素并重新加载列表框或类似的东西。抱歉,我目前还没有评论权,但是你可以先选择第一个然后选择第三个,然后选择第一个,第二次选择第一个后你会得到双重事件吗?

于 2014-01-15T17:40:00.730 回答