如题,有没有办法改变MessageShow.show()对话框的背景颜色?求高手DialogResult result = MessageBox.Show(Properties.Resources.msgIsQuit, "退出系统",
                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

解决方案 »

  1.   

    Messagebox是模态窗口,阻塞当前窗口的。你需要另开个线程做这个事情,还不如自定义个对话框算了。
    A Custom Message Box - CodeProject
    http://www.codeproject.com/KB/cs/A_Custom_Message_Box.aspx
      

  2.   

    http://msdn.microsoft.com/hi-in/magazine/cc188920(en-us).aspx
    参考MSDN
      

  3.   

    自己做一个对话框。很简单的。何必去改messagebox
      

  4.   

    自定义对话框
    private string InputBox(string Caption, string Hint, string Default)
            {
                //by 闫磊 Email:[email protected],[email protected] 2007.10.10
                Form InputForm = new Form();
                InputForm.MinimizeBox = false;
                InputForm.MaximizeBox = false;
                InputForm.ControlBox = false;
                //InputForm.StartPosition = FormStartPosition.CenterScreen;
                InputForm.Location = new Point(50, 100);
                InputForm.Width = 220;
                InputForm.Height = 150;
                //InputForm.Font.Name = "宋体";
                //InputForm.Font.Size = 10;            InputForm.Text = Caption;
                Label lbl = new Label();
                lbl.Text = Hint;
                lbl.Left = 10;
                lbl.Top = 20;
                lbl.Parent = InputForm;
                lbl.Size = new Size(120, 21);
                //lbl.AutoSize = true;
                TextBox tb = new TextBox();
                tb.Left = 30;
                tb.Top = 45;
                tb.Width = 160;
                tb.Parent = InputForm;
                tb.Text = Default;
                tb.PasswordChar = '*';
                tb.SelectAll();
                Button btnok = new Button();
                btnok.Left = 80;
                btnok.Top = 80;
                btnok.Parent = InputForm;
                btnok.Text = "确定";
                //InputForm.AcceptButton = btnok; //回车响应
                btnok.DialogResult = DialogResult.OK;            //Button btncancal = new Button();
                //btncancal.Left = 120;
                //btncancal.Top = 80;
                //btncancal.Parent = InputForm;
                //btncancal.Text = "取消";
                //btncancal.DialogResult = DialogResult.Cancel;
                try
                {
                    if (InputForm.ShowDialog() == DialogResult.OK)
                    {
                        return tb.Text.Trim();
                    }
                    else
                    {
                        return null;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return null;
                }
                finally
                {
                    InputForm.Dispose();
                }
            }
      

  5.   

    可以调用api修改背景色。
    说实话,这叫做吃饱了撑的。
      

  6.   

    确实是有点多此一举,可是美工给软件设计皮肤背景颜色太深了,连Messagebox.show()出来的对话框几乎都看不清楚字了,所以我才想看看有什么办法能改变一下背景颜色