在一个Form中有一些控件,我想让那些控件达到enable=false的状态(点击无反应,鼠标移动到上面也不发生任何变化等等),但是enable=false时控件的颜色、样式会发生改变,请教各位如何实现这些控件类似enable=false,但是颜色样式都是正常状态?最好是用消息的方式解决问题。

解决方案 »

  1.   

    你点击时,啥也不干不就是了,或者自己继承一个,然后重载WndProc,屏蔽点击消息
      

  2.   

    点击,鼠标移动我都有用,还有其他办法吗?
    如何屏蔽该Form中所有控件的消息,除了控件重绘消息
      

  3.   

    除了重绘,其他直接return true
      

  4.   

    不是所有的Control都有readonly属性,再补充一下,比如button鼠标移动到上面的时候button会发生颜色变化,连这个变化最好都没有,而且鼠标的光标也不发生任何变化,好像所有的控件都是一个图片一样。
      

  5.   

    我也想知道怎么屏蔽鼠标点击button的消息。。但是照样能实现click事件
      

  6.   

    winform控件吗
    用API函数EnableWindow来禁用窗口(而不是设置Enabled属性),第一个参数窗口句柄,第二个参数布尔值。
    用这个函数禁用后,从系统层次来说,窗口已经被禁用了,当然不会有所响应。但是WinForm框架却不知情,仍然认为窗口是可用的(这时候Enabled属性仍然为True),所以仍然会按照可用状态绘制控件。
      

  7.   

    还有,
    不要用EnableWindow直接禁用整个窗口,那样的话标题栏、窗口边框等都会失效
    可以放一个Panel,把控件放在Panel里,然后禁用Panel
    或者遍历所有的控件依次禁用
      

  8.   

    只有这种办法吗?
    我想知道微软是怎么实现enable=false的