我只是一个学习如何编码的普通人。当代码看起来很草率并且可以合并时,我不喜欢。话虽如此,我需要整合一些代码,但我没有找到有关如何执行此操作的信息。
我正在尝试根据组合框选择启用/禁用多个文本框。
这是我想要巩固的漫长而丑陋的代码
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
int Combobox_Process_Selected_Index = comboBox2.SelectedIndex;
if (Combobox_Process_Selected_Index == 0)
{
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 1)
{
textBox2.Enabled = true;
textBox3.Enabled = false;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 2)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 3)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = false;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 4)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 5)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 6)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 7)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 8)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = false;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 9)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = true;
textBox11.Enabled = false;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 10)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = true;
textBox11.Enabled = true;
textBox12.Enabled = false;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 11)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = true;
textBox11.Enabled = true;
textBox12.Enabled = true;
textBox13.Enabled = false;
}
if (Combobox_Process_Selected_Index == 12)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;
textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = true;
textBox11.Enabled = true;
textBox12.Enabled = true;
textBox13.Enabled = true;
}
}
答案 0 :(得分:1)
好的,我只需要非常感谢你h8red。我从大量的垃圾代码到少于10行代码。
通过将文本框放在面板中,然后根据组合框用户输入启用/禁用它们,可以得到代码的合并。
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
//set a counter to track textbox number and compare with combobox selection
int countTB = 0;
//grab combobox selection and place as an integer
int Combobox_Process_Selected_Index = comboBox2.SelectedIndex;
//this looks at each child control in my panel (named panel1)
foreach (Control child in panel1.Controls)
{
//this looks at each textbox individually and enables them until combo selection is reached and disables the rest
TextBox textBox = child as TextBox;
if (countTB < Combobox_Process_Selected_Index)
{
textBox.Enabled = true;
}
else
textBox.Enabled = false;
countTB++;
}
}
答案 1 :(得分:0)
您需要一个容器控件类来包含其中的所有文本框。最简单的是Panel类。只需将所有texbox添加到panel.Controls
,您就可以循环访问它们。您还必须手动设置选项卡,以便只能启用其中一些选项卡。