访问标签创建的按钮单击外部事件
本文关键字:单击 外部 事件 按钮 标签 创建 访问 | 更新日期: 2023-09-27 18:11:34
我对c#和编程都是新手。我试图使一个简单的购物清单应用程序使用windows窗体应用程序和Visual studio。这就是我向列表中添加项目的方法。
public Form1()
{
InitializeComponent();
}
int x = 50;
int y = 58;
private void addButton_Click(object sender, EventArgs e)
{
Label itemName = new Label();
itemName.Text = itemInput.Text;
itemInput.Text = "";
this.Controls.Add(itemName);
itemName.Location = new Point(x, y);
itemName.Width = 260;
CheckBox coupon = new CheckBox();
coupon.Location = new Point(x - 30, y);
this.Controls.Add(coupon);
y = y + 25;
}
我的主要问题是,我不能有另一个事件改变标签的属性。例:
public Form1()
{
InitializeComponent();
}
int x = 50;
int y = 58;
private void addButton_Click(object sender, EventArgs e)
{
Label itemName = new Label();
itemName.Text = itemInput.Text;
itemInput.Text = "";
this.Controls.Add(itemName);
itemName.Location = new Point(x, y);
itemName.Width = 260;
CheckBox coupon = new CheckBox();
coupon.Location = new Point(x - 30, y);
this.Controls.Add(coupon);
Button deletButton = new Button();
deletButton.Text = "delete";
this.Controls.Add(deletButton);
deletButton.Location = new Point(x + 260, y);
deletButton.Width = 50;
y = y + 25;
}
private void deletButton_Click(object sender, EventArgs e)
{
itemName.Text = "";
}
上面写着
名称itemName在当前上下文中不存在
是有意义的,因为它在不同的方法中。
我的主要问题是,我可以让itemName在那个方法之外可用吗?还是我完全做错了,不得不从头开始重新设计这个项目?
假设您想坚持使用动态添加控件,就像您现在所做的那样,那么一个简单的方法就是给它一个名称,并通过该名称找到它:
// When you're creating it.
itemName.Name = "itemName";
// Finding it.
var itemName = (Label)this.Controls["itemName"];
// Another way to find it.
var itemName = (Label)this.Controls.Find("itemName", true);