如何在C#中禁用最小化按钮?

如何在C#中禁用最小化按钮?,第1张

概述在我的应用程序中,我需要暂时灰显主窗体的最小化按钮.任何想法如何实现这一目标?我不介意对Win32 dll进行p /调用. 编辑:灰显最小化按钮将是首选解决方案,但有没有其他方法可以防止表单最小化? 我阅读了您对我的回复的评论,并为您提供了更完整的解决方案.我跑得很快,似乎有你想要的行为.而不是从Form派生你的 winforms,而是派生自这个类: using System;using Sys 在我的应用程序中,我需要暂时灰显主窗体的最小化按钮.任何想法如何实现这一目标?我不介意对Win32 dll进行p /调用.

编辑:灰显最小化按钮将是首选解决方案,但有没有其他方法可以防止表单最小化?

解决方法 我阅读了您对我的回复的评论,并为您提供了更完整的解决方案.我跑得很快,似乎有你想要的行为.而不是从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#中禁用最小化按钮?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存