C# 如何以编程方式更改按钮文本?
我试图以编程方式更改按钮的文本。我有许多按钮的名称格式是C# 如何以编程方式更改按钮文本?,c#,.net,winforms,C#,.net,Winforms,我试图以编程方式更改按钮的文本。我有许多按钮的名称格式是btnXXX,其中XXX是一个数字 databaseFunc.SelectThings("uspSelectCategoryNames", noParam, noValue); dataTable = databaseFunc.dataTable; for (int x = 0; x < dataTable.Rows.Count; x++) { btn[x].Text = dataTable.Row[0][0].ToStrin
btnXXX
,其中XXX
是一个数字
databaseFunc.SelectThings("uspSelectCategoryNames", noParam, noValue);
dataTable = databaseFunc.dataTable;
for (int x = 0; x < dataTable.Rows.Count; x++)
{
btn[x].Text = dataTable.Row[0][0].ToString();
}
databaseFunc.SelectThings(“uspSelectCategoryNames”,noParam,noValue);
dataTable=databaseFunc.dataTable;
对于(int x=0;x
如何获取此作业中名为
btnXXX
的按钮:btn[x]
?您可以创建包含按钮的数组。您可以使用索引轻松检索它们:
Button[] buttons = new Button[] { btn0, btn1, btn2 };
buttons[0].Text = "abc";
这将设置第一个按钮的文本
另一个选项是用于查找具有特定名称的控件。请注意,Find
调用中的true
也会搜索子控件:
Control[] matches = this.Controls.Find("btn0", true);
Button b = matches.Length > 0 ? matches[0] as Button : null;
if (b != null)
{ }
您可以创建一个包含按钮的数组。您可以使用索引轻松检索它们:
Button[] buttons = new Button[] { btn0, btn1, btn2 };
buttons[0].Text = "abc";
这将设置第一个按钮的文本
另一个选项是用于查找具有特定名称的控件。请注意,Find
调用中的true
也会搜索子控件:
Control[] matches = this.Controls.Find("btn0", true);
Button b = matches.Length > 0 ? matches[0] as Button : null;
if (b != null)
{ }
但你的按钮代码在哪里?你没编程序吗?结果如何?是否有错误消息?发生了什么,问题到底是什么?请显示btn的定义。是否更改按钮的名称或文本?我是否理解您的意思,您从数据库中读取了N个类别,并希望为您读取的每个类别创建一个按钮?按钮的名称是btn0、btn1等。因此,是的,我正在尝试在循环过程中更改按钮的文本。如果有意义的话?您正在使用.Text,您想更改名称吗?为什么不使用.Name?但按钮的代码在哪里?你没编程序吗?结果如何?是否有错误消息?发生了什么,问题到底是什么?请显示btn的定义。是否更改按钮的名称或文本?我是否理解您的意思,您从数据库中读取了N个类别,并希望为您读取的每个类别创建一个按钮?按钮的名称是btn0、btn1等。因此,是的,我正在尝试在循环过程中更改按钮的文本。如果有意义的话?您正在使用.Text,您想更改名称吗?为什么不使用.Name?要通过字符串访问它们,请使用字典@TaW:我看不到Find
@TaW的附加值:与犯错误的可能性相比,我怀疑它的有用性。如果您对它进行了大量操作,它可能会获得性能提升。我更喜欢第一种方式,因为intx
是实际的基数;我以为他想动态地改变名字。@TaW:那是个打字错误。查看注释。要通过字符串访问它们,请使用字典@TaW:我看不到Find
@TaW的附加值:与犯错误的可能性相比,我怀疑它的有用性。如果您对它进行了大量操作,它可能会获得性能提升。我更喜欢第一种方式,因为intx
是实际的基数;我以为他想动态地改变名字。@TaW:那是个打字错误。见评论。