为了账号安全,请及时绑定邮箱和手机立即绑定

在 C# 中是否有等效的 HTML 函数 getElementById() for Form

在 C# 中是否有等效的 HTML 函数 getElementById() for Form

C#
慕妹3242003 2022-11-21 17:01:54
我们应该在 C# Winform 应用程序中编写康威的生命游戏。所以,我用按钮创建了一个 10 x 10 的“游戏板”。粉色代表死了,蓝色代表活着。为了便于访问,每个按钮都以其在游戏板上的坐标命名(例如 x1y1、x10y9、x5y5)。但后来我意识到我不知道如何遍历 100 个表单控件并根据每个人的颜色/值对每个人执行操作。在 HTML/Javascript 中,我使用了以下循环:for(row = 1; row <= 10; row++){    board[row] = new Array(10); //creates a 10 by 10 matrix to store the board's values in it.    for(col = 1; col <= 10; col++){        var position = "x" + row + "y" + col;        var val = parseInt(document.board.elements[position].value);        board[row][col] = val;    }}所以问题是:有没有办法通过字符串而不是变量名来调用表单控件?之类的东西之类Form1.getControlByName(string)的?
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您可以设置Name您创建的每个 Button 控件的属性。例如,让这button是对 Button 控件的引用:

button.Name = "11";

然后你可以使用Control.ControlCollection.Find方法来找到你正在寻找的按钮控件,如下所示:

Button button = this.Controls.Find("11", true).FirstOrDefault() as Button;

this是对 Form 实例的引用。您需要调用FirstOrDefault,因为Find返回一个名为 的控件数组"11"。最后,您必须使用as运算符将Control对象转换为Button. 如果转换失败,则值为buttonnull。所以在这个转换之后你必须检查它是否不为空:

if(button != null)
{  
  // place here your code
  }


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信