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

C# 在.NET中为多个按钮设置单个事件处理程序?,c#,.net,C#,.net,我正在用silverlight/c编写一个应用程序,它由13个永久性按钮组成,单击这些按钮可以执行到另一个页面的简单导航 问题是我的代码隐藏有13个不同的事件处理程序(很多代码),用于几乎相同的目的 是否有一种方法可以检测按下了哪个按钮,从而触发单个事件处理程序,并且其中的一个简单if语句可以确定要转到哪个页面?测试按钮单击事件处理程序的发送方参数-您可以测试哪个按钮是发送方。是:您可以对所有按钮使用相同的方法,并使用参数“sender”作为“sender.Name”来获取按下按钮的名称。使用字

我正在用silverlight/c编写一个应用程序,它由13个永久性按钮组成,单击这些按钮可以执行到另一个页面的简单导航

问题是我的代码隐藏有13个不同的事件处理程序(很多代码),用于几乎相同的目的


是否有一种方法可以检测按下了哪个按钮,从而触发单个事件处理程序,并且其中的一个简单if语句可以确定要转到哪个页面?

测试按钮单击事件处理程序的发送方参数-您可以测试哪个按钮是发送方。

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

使用字典中的“sender”作为键。“值”可以是导航到的页面。

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

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

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

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


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

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

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