正如倾斜所说:
我发现它添加了这段代码:
这就是我的设计师所包含的内容:
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
listBox1_SelectedValueChanged
发件人: {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
点击listBox1
次来电话中的第三个值两次SelectedValueChanged
listBox1_SelectedValueChanged
发件人: {SelectedItem = "3rd value"} object {System.Windows.Forms.ListBox}
listBox1_SelectedValueChanged
发件人: {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
之后只选择第一个值
答案 0 :(得分:0)
听起来你有两个或更多其他事件的问题,要么你正在选择第三个元素并重新加载列表框或类似的东西。抱歉,我还没有评论权限,但你可以选择第一个然后选择第三个,然后选择第一个并且在第二次选择第一个之后你会得到双重事件吗?