c# - 取消 WinForm 最小化?

标签 c# winforms minimize

我有一个禁用了 minimizeMaximizeClose 按钮​​的 winform,但是如果有人在任务栏中按下它,它仍然会最小化。我想防止这种情况发生。

我怎样才能做到这一点?

最佳答案

覆盖表单上的 WndProc,监听最小化消息并取消。

将此代码添加到您的表单中:

private const int WM_SYSCOMMAND = 0x0112; 
private const int SC_MINIMIZE = 0xf020; 

 protected override void WndProc(ref Message m) 
{ 
    if (m.Msg == WM_SYSCOMMAND) 
    { 
        if (m.WParam.ToInt32() == SC_MINIMIZE) 
        { 
            m.Result = IntPtr.Zero; 
            return; 
        } 
    } 
    base.WndProc(ref m); 
} 

我修改了Rob在此 SO 线程中找到的代码:
How to disable the minimize button in C#?

效果很好:没有闪烁,当用户尝试最小化时什么也没有。

关于c# - 取消 WinForm 最小化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737053/

相关文章:

c# - 如何启动一个停止的线程

python - 如何在启动时隐藏窗口,只留下托盘图标?

python - 'numpy.ndarray' object is not callable error with optimize.minimize

c# - 日期时间与日期时间偏移

c# - GlobalHost.ConnectionManager.GetHubContext<MyHub>() 将返回没有客户端的上下文

c# - 如何将 TableLayoutPanel 的底行滚动到 View 中

c# - 向DataGridView添加行,只显示一行?

javascript - 显示多个时最小化和最大一个 Div

c# - 在 IronRuby 中包含接口(interface)的问题

c# - 查看模型结果的下拉列表