В моем случае у меня есть панели, но чтобы было ясно, я буду использовать кнопки в моем примере.Как правильно использовать «this» для доступа к элементам управления формы?
У меня есть 5 (или более) кнопок, и я установил событие, например, OnMouseHover, на все пять кнопок. Как я могу получить, на который наведен указатель мыши, если все события ссылаются на один метод
Чтобы захватить кнопку, где была наведена мышь, я попытался использовать «это», но она ссылается на форму.
private void buttonX_MouseHover(object sender, EventArgs e)
{
this.Text = "Test";
}
Я ожидал, что текст на указанной кнопке, где мышь парил, чтобы изменить его текст «Test», но это произошло только form.Text.
В моей реальной программе у меня есть 60 панелей, и я снова использую один метод для всех событий OnMouseHover на любом из них. Как получить панель (или кнопку в примере выше), где находится указатель мыши?
Спасибо, вы спасли мой день! У меня есть только один вопрос. Является ли «отправитель» во всех событиях, связанных с контролем? –
@John: Да, он всегда связан с каким-либо экземпляром, который вызывает событие - в случае элементов управления это текущий элемент управления. –
Однако, когда вы поднимаете события самостоятельно, вам необходимо выполнить соответствующий экземпляр ('this') вручную, так как это не обеспечивается компилятором. Наверное, это то, что Марк означает «вообще» в своем ответе. –