[英]How to show a message dialog before can bring other usercontrol to front
我正在開發WinForms應用程序,設計了Hamburger Menu應用程序,假設我的應用程序左側面板上有一個“ Button1”和“ Button2”,並且我有2個UserControl
( userControl1
, userControl2
),然后單擊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.