【问题标题】:Create custom message box with no buttons and no minimize and maximize button创建没有按钮且没有最小化和最大化按钮的自定义消息框
【发布时间】:2014-02-20 04:14:50
【问题描述】:

我想创建一个没有消息框按钮的消息框,也没有最小化和最大化按钮,只有一个关闭按钮。我该怎么做?

谢谢。

我很困惑如何创建那个。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    创建一个表单并像messagebox 一样使用它。将其 MaximizeBoxMinimizeBox 属性设置为 false。并使用ShowDialog() 调用该表单。我希望它能解决你的问题。

    【讨论】:

    • 非常感谢!我会再玩弄它
    【解决方案2】:

    创建一个名为 CustomMsgBox 的表单并粘贴以下代码。

    public class CustomMsgBox : Form {
        private string _msg = string.Empty;
        public CustomMsgBox(string msg) {
            InitializeComponent();
            this.MinimizeBox = false;
            this.MaximizeBox = false;
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            Button btn = new Button()
            btn.Text = "&Close";
            btn.Width = 80;
            this.Controls.Add(btn);
            btn.Location = new Point(this.Width - (btn.Width + 50), this.Height - (btn.Height + 50));
            this.CancelButton = btn;
            this.AcceptButton = btn;
            btn.Click += new EventHandler(this.btn_Clicked);
        }
    
        private void btn_Clicked(object sender, EventArgs e)
        {
            this.Close();
        }
    }
    
    public class MyMessageBox
    {
        public static DialogResult Show(string _message)
        {
            return Show(_message, string.Empty);
        }
        public static DialogResult Show(string _message, string _title)
        {
            CustomMsgBox msg =new CustomMsgBox(_message);
            msg.Text = _title;
            rturn msg.ShowDialog();
        }
    }
    
    
    CALL:
    
    MyMessageBox.Show("This is a sample Text 1", "Hello World");
    MyMessageBox.Show("This is a sample Text 2");
    

    【讨论】:

    • 非常感谢先生!
    【解决方案3】:

    只需创建一个新的Form,并将其MaximizeBoxMinimizeBox 属性设置为false。这将只在标题栏中留下关闭按钮。

    例如:

    public class MyCustomMessageBox : Form {
    
        public string Text { get; set; }
    
        public MyCustomMessageBox() {
            MinimizeBox = false;
            MaximizeBox = false;
        }
    }
    

    然后:

    var messageBox = new MyCustomMessageBox();
    messageBox.ShowDialog();
    

    在您的表单上创建一个标签并使用Text 属性来填充它。

    【讨论】:

    • 非常感谢!但是,最小化和最大化按钮还在吗?他们只是不能点击?不过还是谢谢
    • 如果您只将其中一个设置为 false,它们仍然会存在。如果两者都是错误的..两者都应该消失(如果我没记错的话..自从我广泛使用WinForms以来已经有一段时间了)。
    • 哦,是的,是@Simon Whitehead,直到你提到它,我才知道。非常感谢楼主!
    【解决方案4】:

    只需设置 Form 属性 -> ControlBox = FALSE 然后它将删除表单具有的 Close 和 Min,Max 按钮。

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 2013-04-17
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2020-10-24
      • 2022-11-11
      相关资源
      最近更新 更多