1. 程式人生 > 實用技巧 >WindowsForm模態對話方塊

WindowsForm模態對話方塊

模態對話方塊是指使用者只能和當前對話方塊進行互動的視窗,常見的比如訊息對話方塊,使用者等待視窗這種,當然這不是固定使用。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("這是一個訊息提示框");