模態對話框是指用戶只能和當前對話框進行交互的視窗,常見的比如消息對話框,用戶等待視窗這種,當然這不是固定使用。Windows Form中已經提供了通過視窗的ShowDialog()方法實現模態對話框。只是界面效果有些單一,所以本篇只是為模態對話框增添些界面效果的優化。 在網上看到有很多人用重繪OnP ...
模態對話框是指用戶只能和當前對話框進行交互的視窗,常見的比如消息對話框,用戶等待視窗這種,當然這不是固定使用。Windows Form中已經提供了通過視窗的ShowDialog()方法實現模態對話框。只是界面效果有些單一,所以本篇只是為模態對話框增添些界面效果的優化。
在網上看到有很多人用重繪OnPaint方法去實現遮罩層這種效果,但這裡我們可以用個相對簡單的方法去實現,就是多個視窗進行重疊,先實現一個遮罩層視窗蓋住系統視窗,然後再把對話框視窗彈出。具體代碼如下
//----------------DialogForm.cs視窗類中實現
public void ShowDialog(string message)
{
using (Form overlay = new Form())
{
// 遮罩層視窗設置
overlay.FormBorderStyle = FormBorderStyle.None;
overlay.StartPosition = FormStartPosition.Manual;
overlay.BackColor = Color.Black; // 視窗背景色
overlay.Opacity = 0.7; //背景透明度
overlay.WindowState = FormWindowState.Maximized; // 視窗最大化
overlay.TopMost = true; //視窗置頂
overlay.ShowInTaskbar = false; // 任務欄中隱藏該視窗
overlay.Show();
this.label2.Text = message;
this.Owner = overlay;
this.TopMost = true;
this.ShowDialog();
}
}
//----------------Form1.cs中調用
new DialogForm().ShowDialog("這是一個消息提示框");