| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Игра пятнашки... |
| Автор: Coocky 6.4.2005, 12:35 |
| Задали(как и год назад по МФС) написать пятнашки Обьясните в пару строк,как написать обработчик для 14 кнопок.Ведь ON_COMMAND_RANGE уже не спасет.. Заранее благодарен. |
| Автор: mr.DUDA 6.4.2005, 12:46 | ||
Добавляешь на форму 15 кнопок, для каждой из них добавляешь обработчик события Click с ОДНИМ именем, например OnButtonClicked. Обработчик будет использовать sender для определения, какая кнопка нажата:
Пример формы с 15-ю кнопками и одним общим обработчиком - в файле: |
| Автор: Coocky 6.4.2005, 16:53 | ||
М-дя....Тяжело переходить...
Вот это совсем убило.. |
| Автор: mr.DUDA 6.4.2005, 17:13 | ||||
В упор не вижу, что тебя "убило" Наверное, так привык к шарпу, что исходники (свои и чужие) читаются бегло. Ничто, как говорится, не режет глаз (хотя сначала тоже было тяжеловато |
| Автор: neutrino 6.4.2005, 18:16 | ||||
А какая разница между
и
|
| Автор: mr.DUDA 6.4.2005, 18:31 | ||
| И в первом и во втором примере показано, как преобразовать объект sender к Button. В случае, если sender содержит объект производный от Button, разницы между примерами - никакой. Различия проявятся только если sender не является объектом Button. В первом примере возникнет исключение InvalidCastException, а во втором примере выражение "sender as Button" даст null, в результате при обращении через точку к свойству Text возникнет исключение NullReferenceException. Кстати, в мсдн оператор as раскрывается как:
И ещё, оператор as игнорирует пользовательские операции преобразования, определённые в классе. Модератор: Да, и убедительно прошу задавать вопросы каждый в отдельном топике, чтобы народ смог тоже посмотреть на ответы. |
| Автор: [Last]Wizard 6.4.2005, 18:44 | ||
А разница в том, что если sender - не есть Button, то в первом случае бросится InvalidCastException, а во втором NullReferenceException (так как sender as Button в этом случае будет равно null) |