C# 当组合框值更改时,我应该如何更改文本框的可见性?
我是编程新手,我正在尝试根据组合框上的选定值更改文本框的值,因为值是数字1到20,并且根据选择,它将是可见文本框的数量。我正在使用已更改的事件选定索引 这是我的密码:C# 当组合框值更改时,我应该如何更改文本框的可见性?,c#,winforms,combobox,textbox,C#,Winforms,Combobox,Textbox,我是编程新手,我正在尝试根据组合框上的选定值更改文本框的值,因为值是数字1到20,并且根据选择,它将是可见文本框的数量。我正在使用已更改的事件选定索引 这是我的密码: private void cbxPIN_SelectedIndexChanged(object sender, EventArgs e) { int pines = Convert.ToInt32(cbxPIN.SelectedItem.ToString()); if (pines == 1) {
private void cbxPIN_SelectedIndexChanged(object sender, EventArgs e)
{
int pines = Convert.ToInt32(cbxPIN.SelectedItem.ToString());
if (pines == 1)
{
textbox1.visible = true;
}
else if (pines == 2)
{
textbox1.visible = true;
textbox2.visible = true;
}
...
else if (pines == n)
{
textbox1.visible = true;
textbox2.visible = true;
...
textboxn.visible = true;
}
}
因为组合框上有25个不同的数值,有没有更简单的方法?避免比较每个不同的值
类似循环的东西。至少,我会这样重写它,以减少重复:
private void cbxPIN_SelectedIndexChanged(object sender, EventArgs e)
{
int pines = Convert.ToInt32(cbxPIN.SelectedItem.ToString());
if (pines >= 1)
textbox1.Visible = true;
if (pines >= 2)
textbox2.Visible = true;
...
if (pines >= n)
textboxn.Visible = true;
}
实际上,我会将所有TextBox
控件添加到集合中,可能是在构造函数中:
List<TextBox> TextBoxes = new List<TextBox> { textbox1, textbox2, ... textboxn };
您希望使用循环结构。您应该验证要执行的循环数>0和<可用的文本框数,但我将把错误处理留给您
private void cbxPIN_SelectedIndexChanged(object sender, EventArgs e)
{
int pines = Convert.ToInt32(cbxPIN.SelectedItem.ToString());
TextBox textBox;
for (int i = 1; i <= pines; i++)
{
// get the control from the form's controls collection by the control name
textBox = this.Controls["textbox" + pines.ToString()] As TextBox
textBox.Visible = true;
}
}
private void cbxPIN\u SelectedIndexChanged(对象发送方,事件参数e)
{
int pines=Convert.ToInt32(cbxPIN.SelectedItem.ToString());
文本框文本框;
对于(int i=1;i
private void cbxPIN_SelectedIndexChanged(object sender, EventArgs e)
{
int pines = Convert.ToInt32(cbxPIN.SelectedItem.ToString());
TextBox textBox;
for (int i = 1; i <= pines; i++)
{
// get the control from the form's controls collection by the control name
textBox = this.Controls["textbox" + pines.ToString()] As TextBox
textBox.Visible = true;
}
}