ComboBox 控件的事件怎么让用户选择改变的时候再触发
而不是有代码改变的时候触发事件 如执行到我写的:cb_displayStyle.SelectedIndex = 0的时候就会触发
cb_displayStyle_SelectedIndexChanged(object sender, EventArgs e)事件
如何让用户选择的时候才触发 代码里面改变的时候不触发

解决方案 »

  1.   

    或者设置一个变量flag

    SelectedIndexChanged事件中
    if not flag then
    '程序主体
    end if赋值的时候,先把flag设置为true
    赋值完设成false
      

  2.   


    SelectedIndexChanged
       comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);
                comboBox1.SelectedIndex = 1;
                comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
    做成属性把.
      

  3.   

    假设comboBox1值为a,b,c,d
    先将comboBox1值给定初始值a,再定义
          public int index = 0;
    然后在函数comboBox1_SelectedIndexChanged中输入以下代码      if(index!=this.comboBox1.SelectedIndex)
          {
                index=this.comboBox1.SelectedIndex;
               MessageBox.Show("ok");
          }
          else
          {
              MessageBox.Show("不触发");
          }
    弹出对话框值为“ok”表示代码改变时触发,反之不改变时触发。
      

  4.   

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/CPref17/html/M_System_Windows_Forms_ComboBox_OnSelectionChangeCommitted_1_93798544.htmSelectionChangeCommitted is raised only when the user changes the combo box selection. Do not use SelectedIndexChanged or SelectedValueChanged to capture user changes, because those events are also raised when the selection changes programmatically. This event is also raised when you set SelectedIndex.
      

  5.   

    采用comboBox1_Enter(object sender, EventArgs e)可以实现您要的结果。
    我做一个combox textbox ,textbox叠加在combox上选择combox的内容把它
    的内容给textbox且textbox在combox下面
    private void comboBox1_Enter(object sender, EventArgs e)
    {
    textbox1.text=combox1.text;
    textbox1.sendToBack();
    }