我正在使用带有标签页的标签控件来获取用户输入。最后,在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 ;
}
修改 我已经注意到问题是当我把两个组合框放在一起时,其中一个组成了另一组。如果我尝试通过面板执行此操作,我还必须单独管理所有控件。请指导。
答案 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)
我最终使用报告查看器来显示选择,因为后来我也要打印报告