日期:2014-05-18  浏览次数:20672 次

再问,如何通过消息机制禁用button的click事件
如题,在线等高手

------解决方案--------------------
用委托。。。。
------解决方案--------------------
很明显:Button的Click时间是通过消息WM_LBUTTONDOWN来触发的,如果能做到在发送WM_LBUTTONDOWN消息的时候将其屏蔽掉,此时Button又不灰掉那就perfect了。
那么需要重写函数 PreProcessMessage
C# code

public override bool PreProcessMessage(ref Message msg)
{ 
    if(msg.Msg==WM_LBUTTONDOWN)
   {
       //MessageBox.Show(msg.HWnd.ToString());
        //当然这里还需要msg.HWnd == this.button1.Handle;
        return false;
   }
   return base.PreProcessMessage(ref msg);
}

------解决方案--------------------
button.enable=false;
------解决方案--------------------
http://blog.csdn.net/fan158/article/details/6178392#comments