清理这种模式的方法?使用私有bool标志来表示用户何时更改UI与类更改UI时的UI



我发现自己经常使用这种模式

private boolean cbDeviceIndexInternal = false;
private void cbDevices_SelectedIndexChanged(object sender, EventArgs e)
{
    if (!cbDeviceIndexInternal)
        DeviceChanged();
    cbDeviceIndexInternal = false;
}
...
cbDeviceIndexInternal = true;
cbDevices.SelectedIndex = 0;

由于用户或类本身更改索引,因此SelectedIndex被更改了事件。我真的很讨厌使用此代码,但这是我找到的最好的解决方案。

是否遇到过此事,您是如何解决的?

您不一定要添加删除处理程序。只是不要在Load事件结束之前添加处理程序。这样,他们就不会在进行控件时出现和触发。

最新更新