日期:2014-05-19  浏览次数:20701 次

c# 消息处理时遇到的问题
我在消息处理中,捕捉到特定的消息时,就将窗口的某个按钮disable,但是实现不了。

代码如下:

public   bool   PreFilterMessage(   ref   Message   m)
{
switch(m.WParam.ToInt32())
{
    case   2057:   //这就是我自定义的特定消息
        this.btnOk.Enabled   =   false;
        break;
.
.
.
.
.
    default:

        break;

}
return   false;

}

消息处理没有任何问题,我要处理的各种消息都获得正常,在消息处理时候写log也正常,可就是在处理窗口内容时候有问题,按钮怎么都无法disable。我跟踪代码,看到   this.btnOk.Enabled   =   false;   这句代码的确是执行了的,但是窗口按钮还是没有disable,且我以人格保证,没有任何其他地方将该按钮Enabled设置为true.

怀疑是否在消息处理时候,操作窗口内容需要特殊代码??

google了会儿也没有答案,只好来请教大虾们了。



------解决方案--------------------
试试加一句this.Refresh():
------解决方案--------------------
强制刷新