0

我在整个窗口中不同类型的文本框旁边有几个按钮,它们运行相同类型的流。我决定通过添加带有句柄的逗号分隔符将所有 _click 事件集中到一个事件中。有没有办法告诉通过某个属性单击了哪个按钮,以便我可以使用 case 语句或某种程度仅启用那些特定的文本字段?由于这一切都是通过一次点击事件处理的(因为我不想制作 10 次以上的点击事件只是为了运行其他按钮运行的相同功能,保存代码和可读性)有没有办法找出点击了哪个按钮?

4

2 回答 2

1

你可以尝试这样的事情:

Public Sub YourEventHandlerName(sender As object, e As EventArgs)
    Select CType(sender, Button).Name
        Case "Button1_Name"
            'Do what ever you wanted to do in here
        Case "Button2_Name"
            'Do what ever you wanted to do in here
    End Select
End Sub
于 2013-08-23T13:50:45.727 回答
1

在您的委托中,您有两个参数:Object sender 和 EventArgs e。只需将 sender 对象投射到按钮对象上,然后您就可以处理按钮及其所有属性:

private void button_Click(object sender, EventArgs e)

        {
            Button btn = sender as Button;
            string name = btn.Name;
        }

编辑:对不起,没有注意到 VB.NET 标签,但我会留下我的答案以防万一;)

于 2013-08-23T13:52:08.287 回答