[英]Variable in C# for loop
我的申请表中有很多按钮。 我想检查每个按钮的文字(比较)。 我该如何实现?
for (i = 1; i < 30; i++)
{
if (this.button1.Text == "Hello") //here is PROBLEM
{
//..some statement
}
}
因此,下一次this.button 1 .Text必须更改为this.button 2 .Text,依此类推...
this.button [i]。文本不起作用。
按钮不是数组。 每个对象都是谨慎的对象,是其容器的子代。
理想情况下,您需要构建按钮的集合(数组,列表等)并遍历该集合,而不是使用索引变量(i)。
这是一个很好的方法: https : //stackoverflow.com/a/3426721/820068
这是正确的语法:
foreach (Control button in this.Controls)
{
if (button.GetType() == typeof(Button) && button.Text == "Hello")
{
//..some statement
}
}
我很确定这是Windows窗体。 在Windows窗体中,您可以像这样迭代控件。
foreach (Control c in panel.Controls)
{
string cType = c.GetType().ToString();
// check all buttons
if (cType == "System.Web.UI.WebControls.Button")
{
if(((Button)c).Text == "Hello")
{
}
}
}
因此,代码要做的是迭代面板内的所有控件,并检查每个控件的类型是否为按钮。
更新:正如韦斯利所说,更好的方法是像这样实现它
if (c is Button && c.Text.Equals("Hello")) {
for (int i = 1; i < 3; i++)
{
var buttonName = "button" + i;
Button button = this.Controls.Find(buttonName, true).FirstOrDefault() as Button;
string text = button.Text;
}
试试这个代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.