我在一个按钮控件上写了Click事件。要求Click事件执行到最后使它的Enabled = false. 但是我发现在其他地方使该按钮Enabled = true时,它竟然执行了Click事件。更奇怪的是我在Click事件里设了断点,Enabled = true时截获不到,但的确是执行了Click事件。请问什么原因?怎么抑制Enabled = true触发Click事件?谢谢!

解决方案 »

  1.   

    除非你人为地在某个地方给Enabled设置了事件并执行Click
    否则你说的情况不可能发生
    所以,问题的发生并非如你想象的那样。
      

  2.   

    你肯定是编写了EnabledChanged这个事件
      

  3.   

    不需要抑制,
    Enabled = true 与 触发Click事件 完全没有关系。
      

  4.   

    在属性框里,我检查了这个按钮的事件句柄,我只设了唯一的这个Click事件,没有其他事件,更没有Enabled的事件。
      

  5.   

    继承button并且使用OnClick()方法来实现你的逻辑,不难
      

  6.   

    lianshaohua,我是贫农,能否说的具体些,谢谢!另外,前面几位说的也有道理,可是我不知道错在那里,有经验的能否给个提示,可能错的位置……
      

  7.   


    这个没法提示,因为这个错误很少有人犯
    而且确定一定以及肯定是你在某个过程触发了Click事件
    具体在哪个过程,没有看到你的代码
    任何人都不能说出具体的出错位置。
      

  8.   

    我在一个组合框的cmbSelectedTable_SelectedIndexChanged()事件中设了按钮的this.btnTransfer.Enabled = true;
    在按钮tnTransfer_Click(object sender, EventArgs e)
            {
                ……            this.grdTransferTable.Focus();
                this.btnTransfer.Enabled = false;
            }
    事件中设了this.btnTransfer.Enabled = false;整个窗体除了构造函数外就这两个事件。而且我发现组合框一改选值,按钮事件的结果产生,但按钮内事件的断点截不到。
      

  9.   

    问题找到了。的确是我的粗心。断点截不到,说明一定没有执行Click事件。结果产生了,说明在其他地方执行了。Enabled与Click事件没有关系的,这使我认识上的错误,谢谢大家的提示。结贴。