如何更改文本动态添加的按钮 C#
how to change text dynamically added button c#
添加按钮:
Button button = new Button();
this.Controls.Add(button);
button.Name = "btn" + id;
button.Text = "AAAA";
结果是按钮名称 btn55
,但是,如何更改按钮名称 btn55
上的文本?
类似
private void btnaktual_Click(object sender, EventArgs e)
{
btn55.Text = "BBB";
}
给我错误:
Error 1 The name 'btn55' does not exist in the current context
使用this.Controls.Find("btn55",true).FirstOrDefault().Text = "BBB";
您需要在其父控制器中搜索该按钮。假设您有一个主窗体和放置在其中的按钮。您可以在父级中找到使用控件的 id。
(MainForm.Controls.Find("btn"+number") as Button).Text= "BBB";
如果您使用设计器将按钮放在窗体中,则会创建一个与窗体名称同名的成员变量。当您使用代码创建按钮时,没有 btn55
变量。
当您创建按钮时,您可以引用它。您应该只保留该参考,以便您以后可以使用它。在可以存储它的表单中创建一个成员变量,即在表单 class 中声明 Button button;
(或者可能更具描述性的名称)而不是在创建按钮的方法中。然后你可以稍后使用变量来访问按钮。
试试这个:
var btn = Controls.Find("btn55") as Button;
btn.Text = BBB;
您的全部问题在于页面加载。当您单击按钮事件时,页面会回发,因此如果您的控件未重新加载,则在调用单击事件时它不再存在。您没有在回发时创建按钮,或者按钮不在视图状态中。在创建按钮之前,查找控件将始终 return null,因此这些答案中的大部分都不适合您。
这些页面将帮助您:
Dynamically Created Controls losing data after postback
http://www.codeproject.com/Articles/35360/ViewState-in-Dynamic-Control
一旦重新加载该控件,就可以很容易地从那里获取它。
添加按钮:
Button button = new Button();
this.Controls.Add(button);
button.Name = "btn" + id;
button.Text = "AAAA";
结果是按钮名称 btn55
,但是,如何更改按钮名称 btn55
上的文本?
类似
private void btnaktual_Click(object sender, EventArgs e)
{
btn55.Text = "BBB";
}
给我错误:
Error 1 The name 'btn55' does not exist in the current context
使用this.Controls.Find("btn55",true).FirstOrDefault().Text = "BBB";
您需要在其父控制器中搜索该按钮。假设您有一个主窗体和放置在其中的按钮。您可以在父级中找到使用控件的 id。
(MainForm.Controls.Find("btn"+number") as Button).Text= "BBB";
如果您使用设计器将按钮放在窗体中,则会创建一个与窗体名称同名的成员变量。当您使用代码创建按钮时,没有 btn55
变量。
当您创建按钮时,您可以引用它。您应该只保留该参考,以便您以后可以使用它。在可以存储它的表单中创建一个成员变量,即在表单 class 中声明 Button button;
(或者可能更具描述性的名称)而不是在创建按钮的方法中。然后你可以稍后使用变量来访问按钮。
试试这个:
var btn = Controls.Find("btn55") as Button;
btn.Text = BBB;
您的全部问题在于页面加载。当您单击按钮事件时,页面会回发,因此如果您的控件未重新加载,则在调用单击事件时它不再存在。您没有在回发时创建按钮,或者按钮不在视图状态中。在创建按钮之前,查找控件将始终 return null,因此这些答案中的大部分都不适合您。
这些页面将帮助您:
Dynamically Created Controls losing data after postback
http://www.codeproject.com/Articles/35360/ViewState-in-Dynamic-Control
一旦重新加载该控件,就可以很容易地从那里获取它。