我正在做一个有多个按钮和文本框的程序。我现在创建的程序甚至还没有完成 50%,但代码行超过 5000 行,这使得程序太大了。有没有办法组合这些 for 循环语句:
点击第一个文本框。
var btn = new[] { btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11, btn12, btn13, btn14 };
for (int i = 0; i < 14; i++)
{
if (txt1.Text == btn[i].Text)
{
txt1.Text = "";
btn[i].Visible = true;
break;
}
}
点击第二个文本框。
var btn = new[] { btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11, btn12, btn13, btn14 };
for (int i = 0; i < 14; i++)
{
if (txt2.Text == btn[i].Text)
{
txt2.Text = "";
btn[i].Visible = true;
break;
}
}
还有更多文本框。
最佳答案
仔细查看您正在使用的代码,根据 TextBox 更改的是 TextBox 本身,以便您可以接受它作为函数的参数并将其余语句包装在函数中。然后它将检查条件并更改按钮的可见性。可能如下所示:
var arrayButtons = new Button[] { btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11, btn12, btn13, btn14 };
// Let the array be Global so that we can avoid defining the same every call
public void ChangeButtonVisibility(TextBox currentText)
{
for (int i = 0; i < arrayButtons.Length; i++)
{
if (currentText.Text == arrayButtons[i].Text)
{
currentText.Text = "";
arrayButtons[i].Visible = true;
break;
}
}
}
这样你就可以在点击TextBox1时调用这样的方法:
ChangeButtonVisibility(TextBox1);
对于 TextBox2 Clicked 就像这样
ChangeButtonVisibility(TextBox2);
关于c# - 组合for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341178/