我有一个强大的命名集会.
之前已经问过这个问题......但只是出于不同的目的.
我有一个Form基类.当实现类在基类上设置属性时IsBusy.我想阻止与Form的所有交互(设置Enabled = false是不够的 - 我还想阻止移动,调整大小,关闭等......我不希望我的控件看起来被禁用IsBusy == true)并显示弹出窗口加载窗体(带有加载动画的透明无边框形式).
在我的加载动画表单上调用ShowDialog可以阻止调用表单上的交互...但显然我还希望调用表单代码继续执行.
现在我正在使用新的LoadingForm().Show(),然后在我的调用Form上处理WndProc,如果IsBusy == true我压制所有WndProc消息......但我不喜欢这种方法.它也可以防止表单重新绘制,这是我不想要的.
如果我知道所有不同类型的消息都允许正确重新绘制,我不会介意WndProc方法,IsBusy == true但我不这样做.
所以,我的问题是:
有更好的解决方案吗?
要么
罐头有人告诉我应该通过什么WndProc消息?或者在哪里找到词汇表?
谢谢.
Jef*_*eff 13
我结束了BeginInvoke的ShowDialog:
myForm.BeginInvoke(new Action(() => new LoadingForm().ShowDialog()));
Run Code Online (Sandbox Code Playgroud)
具有所需的效果,让该行之后的代码继续运行并仍然阻止与myForm的所有交互.
| 归档时间: |
|
| 查看次数: |
6784 次 |
| 最近记录: |