0

我有一个为列表中的每个项目创建一个按钮的方法。像这样的东西:

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);
}

现在,当用户单击其中一个按钮时,我想显示不同的视图。但是按钮具有相同的标识符,因此显示的视图始终是创建的最后一个按钮。我该如何解决我的问题?有任何想法吗?

谢谢你。

最好的问候,玛丽亚

4

2 回答 2

2

您可以使用按钮标签:

b.Tag = p;

在你的处理程序中:

Product p = ((Product)((Button)sender).Tag);

然后根据原产品做逻辑。

编辑:将 DataContext (WPF) 更改为 Tag (WinForms)。

于 2012-07-27T15:07:43.877 回答
1

尝试使用此代码

protected void Submit_Click(object sender, EventArgs e)
    {
        var flag = ((Button)sender).Text;
        if (flag == "case 1")
        {
           ....
        }

        else if (flag == "case 1")
        {
           ....
        }
        .....
于 2012-07-27T15:03:45.120 回答