如何在显示消息对话框之前可以将其他用户控件带到前面

时间:2018-05-09 07:58:35

标签: c# .net winforms

我正在开发一个WinForms应用程序,我设计了一个汉堡菜单应用程序,让我说我有一个“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现在显示在屏幕上,我的问题是当我点击按钮2(这将显示userControl2)时,如何显示带有选项(是/否)的确认消息告知用户他/她将离开userControl1? ,如果用户选择“否”,则该应用将保留在userControl1中,如果是,则会显示userControl2

提前致谢,
NicoTing

1 个答案:

答案 0 :(得分:3)

您应该在button2点击事件中执行此操作,即在那里显示确认消息,然后继续显示第二个控件:

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

每个控件都有一个“离开”事件,但是当用户已经离开控件时会触发,因此在离开控件之前不能使用它来确认。