Alt键使窗体重新绘制

本文关键字:绘制 新绘制 窗体 Alt | 更新日期: 2023-09-27 18:20:15

我遇到了一个问题,我希望你们这些优秀的思想家能够克服。。。

出于某种原因,一旦我加载了Windows窗体,如果用户按下Alt键,窗体就会重新绘制,从而导致闪烁。

这种情况只发生在第一次,因此任何后续按下Alt+kbd>键都不会起任何作用。

我没有任何菜单条或事件来处理按键,所以我只能假设这是我没有设置的设置,或者是我在不知不觉中设置的设置。

仅供参考,该表单在构造函数中执行以下操作

DoubleBuffered = true;
SetStyle(ControlStyles.OptimizedDoubleBuffer | 
         ControlStyles.AllPaintingInWmPaint, true);

这是因为我有许多面板和标签,它们也做同样的事情来实现透明度。

祈祷吧,你们中的一个人会知道为什么;)

Alt键使窗体重新绘制

将此代码粘贴到您的表单中:

    protected override void WndProc(ref Message m) {
        // Suppress the WM_UPDATEUISTATE message
        if (m.Msg == 0x128) return;
        base.WndProc(ref m);
    }

当我尝试它时,它很好地抑制了油漆。Windows中的焦点提示处理相当奇怪,请彻底测试以确保这不会产生意外的副作用。