Alt键使窗体重新绘制
本文关键字:绘制 新绘制 窗体 Alt | 更新日期: 2023-09-27 18:20:15
我遇到了一个问题,我希望你们这些优秀的思想家能够克服。。。
出于某种原因,一旦我加载了Windows窗体,如果用户按下Alt键,窗体就会重新绘制,从而导致闪烁。
这种情况只发生在第一次,因此任何后续按下Alt+kbd>键都不会起任何作用。
我没有任何菜单条或事件来处理按键,所以我只能假设这是我没有设置的设置,或者是我在不知不觉中设置的设置。
仅供参考,该表单在构造函数中执行以下操作
DoubleBuffered = true;
SetStyle(ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint, true);
这是因为我有许多面板和标签,它们也做同样的事情来实现透明度。
祈祷吧,你们中的一个人会知道为什么;)
将此代码粘贴到您的表单中:
protected override void WndProc(ref Message m) {
// Suppress the WM_UPDATEUISTATE message
if (m.Msg == 0x128) return;
base.WndProc(ref m);
}
当我尝试它时,它很好地抑制了油漆。Windows中的焦点提示处理相当奇怪,请彻底测试以确保这不会产生意外的副作用。