根据用户选择显示摘要

时间:2012-09-06 00:50:00

标签: c# winforms

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

根据输入,可以显示2组数据。一个将被替换一次。

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

我想使用面板或组合框,但我不知道如何管理位置和显示。我尝试将这些放在彼此上,然后单击尝试将前面的请求放在前面,使其可见并隐藏其他但它无法正常工作。请提出任何建议,这是我的代码:

 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 ;
    }

修改 我已经注意到问题是当我把两个组合框放在一起时,其中一个组成了另一组。如果我尝试通过面板执行此操作,我还必须单独管理所有控件。请指导。

2 个答案:

答案 0 :(得分:0)

你可以这样做。

创建两个包含您所需控件的UserControl,并将GroupBox添加到表单中。不要将您的UserControls添加到您的表单。

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

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

以下代码为您提供了使用两个标签而不是真实UserControls的示例。

    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);
    }

答案 1 :(得分:0)

我最终使用报告查看器来显示选择,因为后来我也要打印报告