在.NET中为多个按钮设置单个事件处理程序?

时间:2010-11-11 18:21:03

标签: c# .net

我在silverlight / c#中编写的应用程序由13个永久按钮组成,点击时可以执行简单的导航到另一个页面。

问题是我的代码背后有13个不同的事件处理程序(很多代码),几乎完全相同。

有没有办法检测哪个按钮被按下以便单个事件处理程序被触发,而一个简单的if语句可以确定要转到哪个页面?

5 个答案:

答案 0 :(得分:4)

是:您可以对所有按钮使用相同的方法,并使用参数“sender”作为“sender.Name”来获取按下按钮的名称。

答案 1 :(得分:2)

在程序的设计器代码中,为所有13个按钮添加相同的事件处理程序(查找具有+ =的代码并为所有这些按钮设置相同的事件处理程序)。

请注意,事件处理程序有一个object(s)参数。您可以按如下方式使用此参数:

if(s.Name = "Button1") {//button 1 stuff}

else if (s.Name = "Button2") {button 2 stuff}

等。

编辑:应该是s.Name =“Button1,2,3等......”

答案 2 :(得分:1)

测试按钮点击事件处理程序的sender参数 - 您将能够测试哪个按钮是发件人。

答案 3 :(得分:0)

使用'sender'作为键使用词典。 “价值”可以是要导航到的页面。

答案 4 :(得分:0)

如果您的事件处理程序中有很多代码,您应该将其分解为单独的方法,并将按钮特定参数发送到该方法。

但是如果你看一下sender参数,你仍然可以拥有一个事件处理程序。