Поскольку я отправил в комментарии решение для этого, использовало (sender as Label).Text
в событии щелчка.
sender
- это тип object
, который содержит object
, который вызвал событие.
Если мы посмотрим, как события запускаются с этим кодом:
EventHandler<ThresholdReachedEventArgs> handler = ThresholdReached;
if (handler != null)
{
handler(this, e);
}
Мы можем видеть, что hanlder(this, e);
передает this
объект, который его запускает, и e
как некоторые параметры (аргументы события).
Теперь this / object
, что переданное событие может быть любым объектом, если вы связываете несколько объектов с одним и тем же событием.
Например, если вы используете yourButton.Click += ClickEvent;
и yourLabel.Click += ClickEvent
, обе кнопки внутри имеют код выше, но обе они будут проходить разные this (themselves)
и e (events if there are any)
поэтому внутри нашего мероприятия мы можем сделать это:
private void ClickEvent(object sender, EventArgs e)
{
if(sender is Label)
{
Label l = sender as Label;
//Do anything with label
}
else if(sender is Button)
{
Button b = sender as Button;
//Do anything with button
}
else
{
MessageBox.Show("Unknown component");
//Or
throw new Exception("Unknown component");
}
}