C# 根据用户选择显示摘要

C# 根据用户选择显示摘要,c#,winforms,C#,Winforms,我正在使用带有选项卡页的选项卡控件来获取用户输入。最后,在打印之前,我必须显示将要打印的用户摘要 根据输入,可显示2组数据。一次更换一个 我是WinForm的新手,但在Asp.net中有一个控制面板,请告诉我是否有一个控件可以用于这种显示 我想使用panel或groupbox,但我不知道如何管理它们的位置和显示。我试着把这些放在对方身上,然后按一下,试着把需要的一个放在前面,让它可见并隐藏另一个,但它不能正常工作。有什么建议吗?这是我的代码: private void button1_Clic

我正在使用带有选项卡页的选项卡控件来获取用户输入。最后,在打印之前,我必须显示将要打印的用户摘要

根据输入,可显示2组数据。一次更换一个

我是WinForm的新手,但在Asp.net中有一个控制面板,请告诉我是否有一个控件可以用于这种显示

我想使用panel或groupbox,但我不知道如何管理它们的位置和显示。我试着把这些放在对方身上,然后按一下,试着把需要的一个放在前面,让它可见并隐藏另一个,但它不能正常工作。有什么建议吗?这是我的代码:

 private void button1_Click(object sender, EventArgs e)
    {

        groupBox2.Visible = false;
        groupBox1.BringToFront();


        groupBox1.Visible = true;

    }

    private void button2_Click(object sender, EventArgs e)
    {
        groupBox1.Visible = false;
        groupBox2.BringToFront();

        groupBox2.Visible = true ;
    }
编辑
我注意到的问题是,当我把两个分组框放在一起时,一个分组框成为另一个分组框的一部分。如果我试图通过面板来实现这一点,我还必须单独管理所有控件。请引导。

你可以这样做

创建两个UserControls,其中包含在您的情况下需要的控件,并将GroupBox添加到表单中。不要将UserControls添加到表单中

将UserControls的两个实例变量添加到表单中,并在FormLoad事件中初始化它们(例如,您可以使用设计器将其中一个控件添加到GroupBox,将初始化代码从InitializeComponent复制并粘贴到Form_Load,移除该控件,然后对另一个控件执行相同的操作)。小心避免将UserControls添加到GroupBox的控件集合中

最后,当您知道要显示什么(或者必须在可视化之间切换)时,只需清除GroupBox的控件集合并添加所需的UserControl

下面的代码提供了一个使用两个标签而不是实际用户控件的示例

    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private bool sel1 = true; 
    private void Form1_Load(object sender, EventArgs e)
    {
        //
        this.label1 = new System.Windows.Forms.Label();
        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(31, 44);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(27, 13);
        this.label1.TabIndex = 0;
        this.label1.Text = "One";
        this.label2 = new System.Windows.Forms.Label();
        this.label2.AutoSize = true;
        this.label2.Location = new System.Drawing.Point(31, 44);
        this.label2.Name = "label1";
        this.label2.Size = new System.Drawing.Size(27, 13);
        this.label2.TabIndex = 0;
        this.label2.Text = "Two";
        groupBox1.Controls.Add(label1);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        groupBox1.Controls.Clear();
        sel1 = !sel1;
        if (sel1)
            groupBox1.Controls.Add(label1);
        else
            groupBox1.Controls.Add(label2);
    }

我最终使用报表查看器来显示所选内容,因为稍后我还要打印报表