问题描述:
在程序中频繁对某个窗体的ShowInTaskbar进行显示、隐藏操作,极易引起窗体的闪烁。
现象描述:
当你做一些比较重要的事情时,你可能不希望程序不经意被异常退出。为此你可能为了屏蔽右键菜单点击关闭引发Ctopic_FormClosed事件引发的程序非正常退出现象(这是十分令人头痛的),而频繁的进行ShowInTaskbar=true,ShowInTaskbar=false这样的操作。
如果你真这样做,闪屏会将你搞得十分狼狈。
为了避免这种现象,干脆一不做二不休,直接不让窗体显示ControlBox(其中controlBox的close与右键菜单的close都是触发FormClosed事件的),
同时将窗体关闭事件屏蔽:
- ///
- /// 屏蔽FORM的右上角关闭及右键菜单的关闭事件
- ///
- protected override void WndProc(ref Message m)
- {
- const int WM_SYSCOMMAND = 0x0112;
- const int SC_CLOSE = 0xF060;
- if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
- {
- return;
- }
- base.WndProc(ref m);
- }