首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态按钮EventArgs单击

动态按钮EventArgs单击
EN

Stack Overflow用户
提问于 2012-07-27 23:00:23
回答 2查看 1.3K关注 0票数 0

我有一个方法可以为列表中的每一项创建一个Button。大概是这样的:

代码语言:javascript
复制
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);
}

现在,当用户点击其中一个按钮时,我想要显示一个不同的视图。但是这些按钮具有相同的标识符,因此所显示的视图总是针对所创建的最后一个按钮。我如何解决我的问题?有什么想法吗?

谢谢。

致以最好的问候,玛利亚

EN

回答 2

Stack Overflow用户

发布于 2012-07-27 23:07:44

你可以使用按钮的标签:

代码语言:javascript
复制
b.Tag = p;

在你的处理程序中:

代码语言:javascript
复制
Product p = ((Product)((Button)sender).Tag);

然后根据原始产品进行逻辑运算。

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

票数 2
EN

Stack Overflow用户

发布于 2012-07-27 23:03:45

尝试使用此代码

代码语言:javascript
复制
protected void Submit_Click(object sender, EventArgs e)
    {
        var flag = ((Button)sender).Text;
        if (flag == "case 1")
        {
           ....
        }

        else if (flag == "case 1")
        {
           ....
        }
        .....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11690439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档