.net Winforms组合框SelectedValueChange事件

.net Winforms组合框SelectedValueChange事件,.net,winforms,controls,combobox,.net,Winforms,Controls,Combobox,首次加载组合框时,如何防止代码在组合框的SelectedValueChange事件中执行?我需要在用户选择新值时执行代码。您有几个选项 加载后,您可以自己连接事件处理程序,而不是让设计器连接事件处理程序 您可以在应用程序中设置“加载”标志,并将代码放入SelectedValueChange事件中进行检查!在继续之前加载 就我个人而言,如果导致问题,我会在加载后添加处理程序。如果您只希望在用户更改组合框时执行一些代码,则可以订阅SelectionChangeCommitted而不是Selectio

首次加载组合框时,如何防止代码在组合框的SelectedValueChange事件中执行?我需要在用户选择新值时执行代码。

您有几个选项

  • 加载后,您可以自己连接事件处理程序,而不是让设计器连接事件处理程序

  • 您可以在应用程序中设置“加载”标志,并将代码放入SelectedValueChange事件中进行检查!在继续之前加载


  • 就我个人而言,如果导致问题,我会在加载后添加处理程序。

    如果您只希望在用户更改组合框时执行一些代码,则可以订阅SelectionChangeCommitted而不是SelectionChanged。以编程方式更改组合框选择时,不会调用“SelectionChangeCommitted”。

    我更喜欢SelectedIndexChanged事件,因为它的行为似乎更好地模拟了底层Win32 API的行为,使其可预测


    控件提供的一些更为深奥的事件根本无法模拟人们期望从其名称中看到的行为。

    我只是删除了处理程序,然后在加载后将其连接起来。我知道这是一篇老文章,但这篇技巧对我帮助很大!!非常感谢。不过要小心,当用户放下组合键,用键盘选择某个内容,然后选项卡失去控制时,SelectionChangeCommitted不会触发。只有当他们按回车键时才会开火。