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("這是一個提示消息");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM