[英]C#- Get Control text that created at runtime
如何获取在运行时创建的控件的文本?
private void button1_Click(object sender, EventArgs e)
{
Button btn = new Button();
btn.Top = 50;
btn.Left = 50;
btn.Name = "mybtn";
btn.Text = "My button";
this.Controls.Add(btn);
}
private void button2_Click(object sender, EventArgs e)
{
Console.WriteLine(mybtn.text); // error
}
var b = this.Controls.OfType<Button>().FirstOrDefault(b => b.Name == "mybtn");
if (b == null) { return; }
Console.WriteLine(b.Text);
private void button2_Click(object sender, EventArgs e)
{
// find mybtn
Button mybtn = this.Controls.FirstOrDefault(i => i.Name == "mybtn") as Button;
if (mybtn != null)
{
Console.WriteLine(mybtn.Text);
}
}
将新创建的控件声明为类成员(属性或字段):
Button btn ;
private void button1_Click(object sender, EventArgs e)
{
btn = new Button();
btn.Top = 50;
btn.Left = 50;
btn.Name = "mybtn";
btn.Text = "My button";
this.Controls.Add(btn);
}
要么
通过表单控件进行搜索:
private void button2_Click(object sender, EventArgs e)
{
Console.WriteLine(this.Controls.Cast<Control>().Single(p=>p.Name == "mybtn").Text);
}
private void button2_Click(object sender, EventArgs e)
{
Console.WriteLine(this.Controls.Find("myBtn", false).FirstOrDefault().Text);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.