仅限面板的对话框

问题描述 投票:0回答:1

我知道这可能听起来很愚蠢,但这是我的项目的真正要求。我的表单内有一个面板,该面板仅用于打开和关闭后续表单。现在我有一个显示一个对话框,询问面板内是否是或否,但当表单已在该面板内打开时。这是第一个问题。另一个是我希望对话框只停止面板内的操作,而不是包含面板的表单。有没有办法得到这个。请分享一些代码。

c# visual-studio winforms modal-dialog panel
1个回答
0
投票

我大概理解你的第一个要求。在面板中打开其他表单。如果面板中已有Form,会弹出提示框询问是否继续。

代码如下:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Form2 form2;

    Form3 form3;

    private void button1_Click(object sender, EventArgs e)
    {
        if(form2 == null&&form3 == null)
        {
            CheckPanel();
        }
        else
        {
            TipBox();
        }

    }

    public void CheckPanel()
    {
        if (radioButton1.Checked)
        {

            form2 = new Form2();
            form2.TopLevel = false;
            form2.Dock = DockStyle.Fill;
            form2.Parent = panel1;
            if (form3 != null)
            {
                form3.Hide();
            }
            form2.Show();

        }

        else if (radioButton2.Checked)
        {
            form3 = new Form3();
            form3.TopLevel = false;
            form3.Dock = DockStyle.Fill;
            form3.Parent = panel1;
            if (form2 != null)
            {
                form2.Hide();
            }
            form3.Show();
        }
    }

    public void TipBox()
    {
        DialogResult result = MessageBox.Show("Do you want to continue?", "Tip", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (result.Equals(DialogResult.Yes))
        {
            CheckPanel();
            
        }
        else if (result == DialogResult.No)
        {
            this.Close();
        }
    }
}

演示如下:

如果我理解有误,请告诉我。我不太明白你的第二个问题。能详细解释一下吗?

© www.soinside.com 2019 - 2024. All rights reserved.