将单击的标签传递给其单击的方法。C#

将单击的标签传递给其单击的方法。C#,c#,arrays,events,event-handling,C#,Arrays,Events,Event Handling,因此,我有一个二维标签阵列: Label[][] _mainAreaLabels = new Label [MAX_COLUMNS_OF_CARDS][]; 我可以添加并指定一个方法,以便在单击它们时调用: for (int i = 0; i <= _mainAreaLabels.Length - 1 ; i++) //for each column { for (int j = 0; j <= _mainAreaLabels[i].Length - 1; j++ )

因此,我有一个二维标签阵列:

Label[][] _mainAreaLabels = new Label [MAX_COLUMNS_OF_CARDS][];
我可以添加并指定一个方法,以便在单击它们时调用:

for (int i = 0; i <= _mainAreaLabels.Length - 1 ; i++) //for each column
{
    for (int j = 0; j <= _mainAreaLabels[i].Length - 1; j++ )
    {
        _mainAreaLabels[i][j].Click += ActiveLabelsClicked;
    }
}

for(int i=0;i确保事件处理程序如下所示:

void ActiveLabelsClicked(object sender, EventArgs e){
   // do stuff with the 'sender' object
}

sender
对象将包含您单击的对象。

确保事件处理程序如下所示:

void ActiveLabelsClicked(object sender, EventArgs e){
   // do stuff with the 'sender' object
}

sender
对象将包含您单击的对象。

您还可以使用Tag属性:

for (int i = 0; i <= _mainAreaLabels.Length - 1; i++) {
  for (int j = 0; j <= _mainAreaLabels[i].Length - 1; j++) {
    _mainAreaLabels[i][j].Tag = new int[] { i, j };
    _mainAreaLabels[i][j].Click += ActiveLabelsClicked;
  }
}

void ActiveLabelsClicked(object sender, EventArgs e) {
  var label = (Label)sender;
  var tag = (int[])label.Tag;
  int column = tag[0];
  int row = tag[1];
}

对于(int i=0;i您还可以使用标记属性:

for (int i = 0; i <= _mainAreaLabels.Length - 1; i++) {
  for (int j = 0; j <= _mainAreaLabels[i].Length - 1; j++) {
    _mainAreaLabels[i][j].Tag = new int[] { i, j };
    _mainAreaLabels[i][j].Click += ActiveLabelsClicked;
  }
}

void ActiveLabelsClicked(object sender, EventArgs e) {
  var label = (Label)sender;
  var tag = (int[])label.Tag;
  int column = tag[0];
  int row = tag[1];
}

for(int i=0;i)事件处理程序通常有一个
sender
参数,您可以使用它。我们是在谈论WinForms、WPF还是ASP.NET?WinForms(额外字符)事件处理程序通常有一个
sender
参数,您可以使用它。我们是在谈论WinForms、WPF还是ASP.NET?WinForms(额外字符)+1,但事件处理程序不能真正像其他任何东西;-)我可以将发送者的类型更改为标签吗?@Jon只是确保;)@user1091236您最好创建一个局部变量,并将发送者强制转换为
var Label=(Label)sender;
+1中的标签,但事件处理程序不能真正像其他任何东西;-)我可以将发送者的类型更改为标签吗?@Jon正在确认;)@user1091236您最好创建一个局部变量,并将发送者强制转换为
var label=(label)sender中的标签