2010-05-21 3 views
0

Forms http://img101.imageshack.us/img101/6970/stackoverflowquestion.png2 управления, 1 событие

У меня есть два входных текстовые поля, которые принимают хост или IP. Когда пользователь выходит из окна ввода, запускается событие, которое проверяет вход, чтобы увидеть, действительно ли он является реальным компьютером. Затем результаты помещаются в соответствующую метку.

Мой вопрос: должен ли я использовать отдельные события для каждого окна ввода, так как они обновляют разные метки? Или я могу использовать 1 событие и проверить, кто был вызывающим, а затем обновить соответствующую метку?

+4

Название звучит (отвратительно) знакомо: 2 Девочки, 1 ... hehe ^^ – Simon

+0

@Simon: Чувак! Теперь я не могу серьезно подойти к этому вопросу .. .. .. ... Так вот эта детская тюлень входит в клуб ... – Rusty

ответ

3

Поскольку они обновляют отдельные ярлыки, я бы выбрал два обработчика событий. Это чище и не требует никакой логики.

Это может вызвать метод утилиты, который выполняет фактическое обновление, если вы хотите сохранить этот код в одном месте.

0

Вы можете сделать это в любом случае, но я бы сказал, что вы должны использовать 2 разных обработчика событий, тогда вам не нужна логика, чтобы решить, что делать на основе вызывающего. Это делает более понятным и понятным код.

0

Используйте два события, и обработчики вызовут обычный метод, который принимает метку в качестве параметра.

0

Может быть, есть один главный обработчик событий (не реальный обработчик событий, но аналогичный), который принимает ссылку на этикетке, а также отдельные обработчики событий, которые называют главным, что-то вроде:

private void AnyTextBox_Leave(object sender, EventArgs e, Label labelToUpdate) 
{ 
    // Do stuff 
} 

private void TextBox1_Leave(object sender, EventArgs e) 
{ 
    AnyTextBox_Leave(sender, e, lbl1); 
} 
private void TextBox2_Leave(object sender, EventArgs e) 
{ 
    AnyTextBox_Leave(sender, e, lbl2); 
} 
0

Я бы зарегистрируйте два отдельных события по одному для каждой метки.

1

короткий ответ да.

Если у вас только два, вы можете написать оператор switch. Но тогда вы будете тесно связаны с фактическими ярлыками.

Другой вариант размещения метки в свойстве тега, а затем, когда вы получаете отправителя, получите тег отправителя, нарисуйте его как метку и установите текст.

1

Другая альтернатива - это настраиваемый элемент управления, который содержит текстовое поле и метку, и построение обработчика события в текстовое поле controlbox_leave, если у вас есть согласованная логика для всех элементов управления.

Смежные вопросы