如何根据数值隐藏文本框?

时间:2016-05-31 12:20:46

标签: c#

我有一个表单,用户可以选择访客数量。我想隐藏第二种形式中不需要的额外文本框。

示例用户在form2上的form1上选择8个guest虚拟机我想隐藏textbox9和textbox10,因此只显示文本框1-8,他们需要填写访客姓名。

在Visual Studio中使用Windows Forms C#实现此目的的最佳方法是什么?

这是一个例子,但似乎非常重复

private void DisplayTextBoxs()
    {
        if (xBillInformationForm.dGuestNumber == 1)
        {
            xCustomer1Label.Visible = true;
            xCustomer1TextBox.Visible = true;
        }
        if (xBillInformationForm.dGuestNumber == 2)
        {
            xCustomer1Label.Visible = true;
            xCustomer1TextBox.Visible = true;
            xCustomer2Label.Visible = true;
            xCustomer2TextBox.Visible = true;
        }
        if (xBillInformationForm.dGuestNumber == 3)
        {
            xCustomer1Label.Visible = true;
            xCustomer1TextBox.Visible = true;
            xCustomer2Label.Visible = true;
            xCustomer2TextBox.Visible = true;
            xCustomer3Label.Visible = true;
            xCustomer3TextBox.Visible = true;
        }
        if (xBillInformationForm.dGuestNumber == 4)
        {
            xCustomer1Label.Visible = true;
            xCustomer1TextBox.Visible = true;
            xCustomer2Label.Visible = true;
            xCustomer2TextBox.Visible = true;
            xCustomer3Label.Visible = true;
            xCustomer3TextBox.Visible = true;
            xCustomer4Label.Visible = true;
            xCustomer4TextBox.Visible = true;
        }
    }

3 个答案:

答案 0 :(得分:0)

对于有限的最大访客人数,您可以

Textbox2.Visible = userChoice >= 2;
Textbox3.Visible = userChoice >= 3;

对于大量的客人/文本框,这变得笨拙。

答案 1 :(得分:0)

如果动态构建表单,可以将所有文本框放在一个数组中并循环遍历它们。但除非你发布你的代码,否则我们无法给出一个好的答案

TextBow[10]textboxes;
textBoxes[0] = your first textbox
textBoxes[1] = you second textbox

For(int i = userChoice -1; i < textBoxes.Length; i++){
   textBoxes[i].Visible = false;
}

所以我的代码从userChoice开始,遍历数组中的所有文本框

答案 2 :(得分:0)

尝试循环

var quantity = convert.ToInt32(xBillInformationForm.dGuestNumber);

<table>
    for(int i=1, i<=quantity; i++)
    {
        <tr>
            <td>
                <label id="name">Name</label>
                <input id="address" type="text" placeholder="address" />
            </td>
        </tr>        
    }
</table>

此外,您可以添加两个按钮或链接,如“添加访客”和第二种形式的“删除访客”,并通过jquery处理它