【发布时间】:2019-05-12 18:23:08
【问题描述】:
我编写了一个函数 AddItem,它可以将项目添加到列表视图中。我还创建了一个函数来创建动态按钮。但是一旦我创建了一个动态按钮,我希望它在按下按钮时让 AddItem 函数工作。
我不知道如何解决这个问题,因为我对 C# 和 windows 窗体相对较新。
private void AddButton(string Name, string Text, int Posx, int Posy, double Price, string ItemName)
{
// Create a Button object
Button NewButton = new Button();
// Set Button properties
NewButton.Height = 50;
NewButton.Width = 120;
NewButton.BackColor = Color.Gainsboro;
NewButton.ForeColor = Color.Black;
NewButton.Location = new Point(Posx, Posy);
NewButton.Text = Text;
NewButton.Name = Name;
NewButton.Font = new Font("Microsoft Sans Serif", 12);
// Add a Button Click Event handler
NewButton.Click += new EventHandler(NewButton_Click);
//Add to form ontop of panelButtonHamburgers
panelButtonsHamburgers.Controls.Add(NewButton);
}
private void NewButton_Click(object sender, EventArgs e)
{
AddItem(Price, ItemName);
}
正如您所见,AddButton 函数接受价格和商品名称,一旦单击按钮,我希望 additem 函数以相同的价格和商品名称运行。
谢谢!
【问题讨论】:
-
您可以使用
Button.Tag属性来存储您需要的信息。然后,在事件处理程序中,将sender转换为 Control(或 Button)并检索 Tag 的内容(类型为object,您可以在其中存储任何内容)。我建议你使用decimal类型来表示Price(货币)。