我有一个方法可以为列表中的每一项创建一个Button。大概是这样的:
foreach (Product p in productsList)
{
b = new Button();
b.Name = p.Name;
b.Tag = p.Name;
b.Text = p.Name;
b.Size = new Size(93, 23);
b.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
b.AutoSize = true;
b.Click += new System.EventHandler(this.b_Click);
this.ProdutosFlowPanel.Controls.Add(b);
}现在,当用户点击其中一个按钮时,我想要显示一个不同的视图。但是这些按钮具有相同的标识符,因此所显示的视图总是针对所创建的最后一个按钮。我如何解决我的问题?有什么想法吗?
谢谢。
致以最好的问候,玛利亚
发布于 2012-07-27 23:07:44
你可以使用按钮的标签:
b.Tag = p;在你的处理程序中:
Product p = ((Product)((Button)sender).Tag);然后根据原始产品进行逻辑运算。
编辑:将标签(WPF)更改为DataContext (WinForms)。
发布于 2012-07-27 23:03:45
尝试使用此代码
protected void Submit_Click(object sender, EventArgs e)
{
var flag = ((Button)sender).Text;
if (flag == "case 1")
{
....
}
else if (flag == "case 1")
{
....
}
.....https://stackoverflow.com/questions/11690439
复制相似问题