将其他字符串发送到事件处理函数

时间:2010-10-30 11:54:22

标签: c# winforms mouseevent

我有一个标准的mouseEventHandler:

a.MouseClick += new MouseEventHandler(labelClick);

其中a是标签。点击时调用的函数如下:

private void labelClick(object sender,MouseEventArgs mea)
        {
            MessageBox.Show("click on the label");
        }   

如何向被叫函数发送更多信息? (即我有很多标签;对于每个标签,我想为我的位置和地址发送2个字符串)

此致 Alexandru Badescu

2 个答案:

答案 0 :(得分:3)

也许您可以使用标签的Tag属性并将sender参数转换为标签并阅读Tag属性。

将Tag属性设置为

string.Format("{0};{1}", Location, Address)

然后在事件处理程序

Label lbl = sender as Label;
String[] LocAdd = ((String)lbl.Tag).Split(';');

现在,您在阵列的第一项中有位置,在第二项中有地址。

答案 1 :(得分:2)

a.MouseClick += (sender, e) => HandleLabelMouseClick(sender, e, "whatever1", "whatever2");

private void HandleLabelMouseClick(object sender, MouseEventArgs e, string whatever1, string whatever2)
{
    MessageBox.Show(whatever1 + "\n" + whatever2);
}