C#根据组合框选择启用/禁用多个文本框 [英] C# Enable/Disable multiple textbox based on combobox selection
问题描述
我只是一个学习编码的普通人。我不喜欢代码看起来草率并且可以合并。话虽如此,我需要合并一些代码,但是我没有找到有关如何执行此操作的信息。
I am just an ordinary guy who is learning how to code. I don't like when code looks sloppy and can be consolidated. With that being said I need to consolidate some code, but I have failed to find information on how to do it.
我正在尝试基于以下方式启用/禁用多个文本框:组合框选择。
I am trying to enable/disable multiple textbox based of combobox selection.
这是我要合并的冗长而丑陋的代码
Here is the long and ugly code I am trying to consolidate
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;
}
}
推荐答案
好的,我只需要非常感谢您 h8red 。我从大量的垃圾代码变为不到10行代码。
Okay, I just have to say thank you very much h8red. I went from a massive amount of junk code to less than 10 lines of code.
这里是将文本框放在面板中,然后启用/
Here is the resulting consolidation of code by placing the textboxes in a panel and then enabling/disabling them based on the combo box user input.
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++;
}
}
这篇关于C#根据组合框选择启用/禁用多个文本框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!