如何为MessageBox设置自定义位置

时间:2011-04-18 17:09:37

标签: c# messagebox

我想在给定位置显示MessageBox。我不希望MessageBox覆盖并隐藏父窗体的一部分。有没有办法使用默认的MessageBox对象来指定自定义位置?

我在VS 2008中使用C#和.Net Framework 3.5

2 个答案:

答案 0 :(得分:7)

您无法更改消息框的属性。您必须创建自己的表单()并将其用作消息框。这样你就可以定义它的一切(位置,大小等)

这是我做过的一个。

public partial class NotifyForm : Form
    {
        public NotifyForm(string message, string title)
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;// Or wherever 

            lblMessage.Text = "\r\n" + message;
            this.Text =  title;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }

我将它初始化为:

NotifyForm frm = new NotifyForm("Added item: " + txtAddAcc.Text + " to Accessibility Categories list.", "Add Item!");
frm.Show();

答案 1 :(得分:2)

您可以从Form创建自己的自定义消息框,并以这种方式将其显示为对话框 设置启动位置。例如:

   var form = new Form
                       {
                           StartPosition = FormStartPosition.Manual, 
                           ShowInTaskbar = false,
                           Location = new Point(100,100)
                       };
        form.ShowDialog();