在SelectionChangeCommitted之前处理OnSelectedIndexChanged?

时间:2011-11-07 13:00:07

标签: c# .net winforms combobox

我正在开发一个异步绑定控件,它继承了一个ComboBox(和其他场景中的Textbox,但这并不是真正相关的......)。我已经在这个应用程序的表单上替换了一堆现有的ComboBox,这些对于大多数这些控件都运行得很好。除了一个......

我的框使用以下代码覆盖OnSelectedIndexChanged方法:

protected override void OnSelectedIndexChanged(EventArgs e)
{
  if (!Helper.ItemsApplied)
    return; //don't worry! the index will be selected when the items are applied!

  _selectedValue = Helper.GetValue(Text);
  base.OnSelectedIndexChanged(e);
}

这很好用,直到有人试图使用SelectionChangeCommitted事件处理值更改。完全在合理的范围内;我不应该更改他们的代码以使用SelectedIndexChanged,因为当以编程方式调用该值时,不应执行此功能(请参阅MSDN Article)。

但是,当以编程方式更改索引时,我的功能 需要执行,但需要在之前执行 < / strong> SelectionChangeCommitted事件确实如此!在SelectionChangeCommitted事件之前触发了SelectedIndexChanged事件。

关于如何解决这个问题的任何想法?最好只改变我控制中的代码而不是它们的形式?

0 个答案:

没有答案