2014-12-17 2 views
1

Я работаю над очень простым приложением.

У меня есть форма с кучей ящиков.

Когда я нахожу любой из этих полей, я хочу вызвать метод SwapImage();, который просто меняет фоновое изображение.

Как я могу заставить это изменить, без указания элемента управления, который я хочу изменить. В jQuery (не то, что они сопоставимы любыми способами), я бы использовал $ (this), что эквивалентно тому, что в C#?

private void SwapImage(object sender, EventArgs e) 
{ 
    sender.BackColor = Color.Coral; 
    MessageBox.Show("What are you doing, you should be working!"); 
} 
+2

Какой тип коробки? Вам нужно передать 'sender' этому типу, и он будет работать – dotnetom

+2

Вы знакомы с тем, как отбрасывать Отправителя ..? – MethodMan

+2

Вам просто не хватает роли. Какие у вас коробки? Панели? PictureBoxes? – adv12

ответ

6

Там не конкретный эквивалент $(this) в C#, но в данном контексте, кажется, что у вас есть обработчик событий, где sender является объектом повышения события. Вы можете применить его к своему типу, а затем изменить свойство. Предположим, что ваш Box является PictureBox то в этом случае вы можете сделать:

private void SwapImage(object sender, EventArgs e) 
{ 
    PictureBox pictureBox = sender as PictureBox; 
    if (pictureBox != null) 
    { 
     pictureBox.BackColor = Color.Coral; 
    } 
    else 
    { 
     MessageBox.Show("What are you doing, you should be working!"); 
    } 
} 
Смежные вопросы