0

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

根据输入,可以显示 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 ;
    }

编辑 我已经注意到问题是当我将两个组框放在彼此顶部时,一个成为另一个的一部分。如果我尝试通过面板执行此操作,我还必须单独管理所有控件。请指导。

4

2 回答 2

0

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

于 2012-09-10T23:33:02.820 回答
0

你可以这样做。

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

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

最后,当您知道要显示什么(或必须在可视化之间切换)时,只需清除 GroupBox 的 Control 集合并添加所需的 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);
    }
于 2012-09-06T07:52:46.240 回答