将两个控件放在一起并管理其可见性的最佳方法 - C#

时间:2017-05-13 05:19:33

标签: c# visual-studio

仅举例:

我有两个文本框,两个文本框应该位于表单的相同位置,并且两个文本框的大小相同。 由于懊悔,我需要让其中一个看得见。

好的,一切都很完美:

if (condition)
{
   txtBox1.Visible = false;
   txtBox2.Visible = true;
}
else
{
   txtBox1.Visible = true;
   txtBox2.Visible = false;
}

但是design mode中存在一个小问题!我无法在design mode中轻松处理和选择一个文本框,一个发送回来,一个发送到前面,访问它们会导致麻烦!

如何通过控制订购和设计来管理这种情况?我的方式是将两个控制权交给对方吗?有没有更好的方法?

3 个答案:

答案 0 :(得分:1)

您可以通过多种方式从这两个控件中选择一个控件。首先,按Tab键直到你想要选择的控件上。要优化选择,您需要先选择一个不同的控件,其Tab键顺序小于这两个控件。

其次,您可以选择任何控件并点击F4打开属性窗口。在属性窗口的顶部有一个下拉列表,您可以在其中看到控件名称。然后,您可以从此属性窗口中选择您选择的控件,并对属性进行更改。

答案 1 :(得分:1)

你可以做这样的事情,这是示例代码,

txtBox1.Visible = false;

Point loc = new Point(50, 60); //new location point
txtBox2.Location = loc; //changing location of txtBox2
txtBox2.Visible = true;

答案 2 :(得分:1)

一种选择是将一个TextBox放在您想要的位置(假设textbox1将位于正确的位置)并将另一个文本框放在设计器附近。这样您就可以在设计时轻松选择它们。

然后,在Form_Load事件中,您只需将textBox2放在与textbox1相同的位置:

private void Form1_Load(object sender, EventArgs e)
{
    textbox2.Location = textbox1.Location;
    textbox2.Visible = false;

更好的问题可能是,你为什么要这样做?文本框是一个文本框,您已经拥有了一个所需的位置。文本框用于收集用户输入。为什么要在同一个地方展示和隐藏另一个?用户不会知道差异,您的程序状态可能不关心用户输入数据的控件的名称......