代码之家  ›  专栏  ›  技术社区  ›  IordanTanev

Combox事件选择值已更改

  •  14
  • IordanTanev  · 技术社区  · 14 年前

    我有一个简单的问题可能是有人在我面前问它,但我找不到它。假设我有一个数据表,它有一些来自数据库的数据,我想把它绑定到一个组合框,我使用这样的标准代码

     comboBox1.BeginUpdate( );
     comboBox1.ValueMember = "id";
     comboBox1.DisplayMember = "name";
     comboBox1.DataSource = dt;
     comboBox1.EndUpdate( );
    

    问题是在绑定事件的过程中 SelectedValueChanged 问题是,当外部值发生变化时,每次重新绑定组合,每次我都必须这样做

     comboBox1.SelectedIndexChanged -= new System.EventHandler( this.comboBox1_SelectedValueChanged );
    

    我的问题是,当我来自数据绑定而不是用户输入时,有一种更聪明的方法可以跳过事件。问题是,我希望在我的控件中继承ComboBox,而不是在每个From中每次都这样做。 最好的问候,
    约旦

    2 回复  |  直到 13 年前
        1
  •  18
  •   jim31415    13 年前

    尝试使用 已提交SelectionChange 事件。

    来自msdn文档:

    已提交SelectionChange 仅当用户更改 组合框选择。 不要使用 选择的索引已更改 选择的值已更改 捕获用户更改 因为这些事件 当所选内容以编程方式更改时也引发。

        2
  •  0
  •   xr280xr    13 年前

    我一直都像太空人说的那样。我创建了一个名为“正在加载”的全局布尔变量,并在加载组合框时将其设置为“真”,然后在加载完成后将其设置为“假”。然后在事件处理程序中,第一行是

    if(_isLoading) return;