c#自訂訊息框美化步聚

來源:互聯網
上載者:User

   Windows內建的訊息框比較醜,特別是轉到WIN7下更加,項目中用到的訊息框非常多,基本上有提示資訊、錯誤資訊、詢問資訊這三種,從美觀角度,MessageBox.show()這個方法出來的訊息框有點不盡人意,於是自己寫了一個,個人覺得舒服些。

  說明:以下命名忽略了大小寫。

  自訂資訊框

  系統資訊框

  自訂詢問框

  系統詢問框

  步驟1:

  建立表單frmMessageBox,放置一個picturebox(picICO)控制項和一個label(labinfo)控制項以及兩個panel控制項,其中panel1裡面放一個按鈕,命名為btnOk,文text屬性為確定(&O),dialogresult屬性設定為ok,這樣的話結束對話方塊之後會返回dialogresult.ok,這裡為了能夠自適應訊息長度而改變按鈕寬度和對話方塊寬度,特意要放置兩個panel,另外一個panel放置兩個按鈕,一個是,一個否。

  這樣的話相信你已經知道這些控制項的用處了吧,圖片框用來顯示對應圖片,資訊框的話就是一個大勾,詢問框的話就是一個大問號,提前將資源添加到項目中,建議圖片檔案命名最好info.png/error.png這樣的,到時候取資源的話好找,label用來顯示訊息。

  步驟2:

  定義枚舉類型,這裡定義了三種,你也可以自己增加。

  public enum MessageBoxStyle

  {

  info=0,

  question=1,

  error=2

  };

  步驟3:

  重寫建構函式

  public frmMessageBox(MessageBoxStyle messageBoxStyle,string msg)

  {

  InitializeComponent();

  if (messageBoxStyle == MessageBoxStyle.info)

  {

  picICO.Image = global::myAlarmSystem.Properties.Resources.info;

  this.Text = "提示";

  panel1.Visible = true;

  panel2.Visible = false;

  }

  else if (messageBoxStyle == MessageBoxStyle.question)

  {

  picICO.Image = global::myAlarmSystem.Properties.Resources.question;

  this.Text = "詢問";

  panel1.Visible = false;

  panel2.Visible = true;

  }

  else if (messageBoxStyle == MessageBoxStyle.error)

  {

  picICO.Image = global::myAlarmSystem.Properties.Resources.error;

  this.Text = "錯誤";

  panel1.Visible = true;

  panel2.Visible = false;

  }

  this.labInfo.Text = msg;

  SizeF size = TextRenderer.MeasureText(msg, new Font("宋體", 15, FontStyle.Regular));

  int TempWidth = (int)size.Width;

  if (TempWidth <= 249) { return; }

  this.Width = (int)size.Width + 130;

  this.panel1.Width = TempWidth-20;

  this.panel2.Width = TempWidth-20;

  btnYes.Width = TempWidth / 2 - 20;

  btnNo.Width = TempWidth / 2 - 20;

  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.