编辑:灰显最小化按钮将是首选解决方案,但有没有其他方法可以防止表单最小化?
解决方法 我阅读了您对我的回复的评论,并为您提供了更完整的解决方案.我跑得很快,似乎有你想要的行为.而不是从Form派生你的 winforms,而是派生自这个类:using System;using System.windows.Forms;using System.ComponentModel;namespace NoMinimizeTest{ public class MinimizeControlForm : Form { private const int WM_SYSCOMMAND = 0x0112; private const int SC_MINIMIZE = 0xf020; protected MinimizeControlForm() { AllowMinimize = true; } protected overrIDe voID WndProc(ref Message m) { if (!AllowMinimize) { if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt32() == SC_MINIMIZE) { m.Result = IntPtr.Zero; return; } } } base.WndProc(ref m); } [browsable(true)] [category("Behavior")] [Description("SpecifIEs whether to allow the window to minimize when the minimize button and command are enabled.")] [DefaultValue(true)] public bool AllowMinimize { get; set; } }}
如果您希望能够在发送点击时决定是否允许最小化,则可以执行更多 *** 作,例如:
using System;using System.windows.Forms;using System.ComponentModel;namespace NoMinimizeTest{ public class MinimizeControlForm : Form { private const int WM_SYSCOMMAND = 0x0112; private const int SC_MINIMIZE = 0xf020; protected MinimizeControlForm() { } protected overrIDe voID WndProc(ref Message m) { if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt32() == SC_MINIMIZE && !CheckMinimizingallowed()) { m.Result = IntPtr.Zero; return; } } base.WndProc(ref m); } private bool CheckMinimizingallowed() { CancelEventArgs args = new CancelEventArgs(false); OnMinimizing(args); return !args.Cancel; } [browsable(true)] [category("Behavior")] [Description("Allows a Listener to prevent a window from being minimized.")] public event CancelEventHandler Minimizing; protected virtual voID OnMinimizing(CancelEventArgs e) { if (Minimizing != null) Minimizing(this,e); } }}
有关此窗口通知的更多信息,请参阅MSDN article about it.
总结以上是内存溢出为你收集整理的如何在C#中禁用最小化按钮?全部内容,希望文章能够帮你解决如何在C#中禁用最小化按钮?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)