簡體   English   中英

如何在之前顯示消息對話框可以將其他用戶控件置於最前面

[英]How to show a message dialog before can bring other usercontrol to front

我正在開發WinForms應用程序,設計了Hamburger Menu應用程序,假設我的應用程序左側面板上有一個“ Button1”和“ Button2”,並且我有2個UserControluserControl1userControl2 ),然后單擊button1 ,我叫userControl1.BringToFront();

這是我的確切代碼:

        if (!panelUSerControl.Controls.Contains(DashboardView.Instance)) {
            panelUSerControl.Controls.Add(DashboardView.Instance);
            DashboardView.Instance.Dock = DockStyle.Fill;
            DashboardView.Instance.BringToFront();
        } else {
            DashboardView.Instance.BringToFront();
        }

所以userControl1現在顯示在屏幕上,我的問題是當我單擊button2(這將顯示userControl2 )時,如何顯示帶有選項(是/否)的確認消息以通知用戶他/她將離開userControl1 ,如果用戶選擇“否”,則該應用程序將停留在userControl1 ;如果是,則該應用程序將顯示userControl2

提前致謝,
NicoTing

您應該在button2 click事件中執行此操作,即在此處顯示確認消息,然后繼續顯示或不顯示第二個控件:

private void button2_click(object sender, System.EventArgs e)
{
    if (MessageBox.Show("Show userControl2?", "Confirmation", 
             MessageBoxButtons.YesNo) == DialogResult.Yes))
    {
        userControl2.BringToFront();
    }
}

每個控件上都有一個“離開”事件,但是當用戶已經離開控件時會觸發該事件,因此您不能在離開控件之前使用它進行確認。

這是我所做的:

if (panelUSerControl.Controls.Contains(userControl1.Instance) && panelUSerControl.Controls.GetChildIndex(userControl1.Instance) == 0) {
        if (MessageBox.Show("Are you sure you want to cancel your delivery?", "Confirmation", MessageBoxButtons.YesNo) == DialogResult.No) {
            return;
            }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM