Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Как посмотреть события для кнопки |
Автор: Lion_Smith 25.3.2008, 11:25 |
В VS 2008 я создал WPF проект на C#. Создал кнопку, открыл её свойства в окне Propertis и не обнаружил привычной кнопки с молниями для просмотра событий (Events), которые данная кнопка может генерировать. Меня это очень огорчило. Мне необходимо создать обработчик события MouseLeftButtonDown. В таком же проекте на VB .Net найти события можно используя раскрывающиеся списки вверху окна с VB .Net кодом и двойным щелчком сгенерировать код нужного тебе события. А что делать в C#? Двойной щелчёк по кнопке и это всё что дали нам разработчики в Microsoft? А как мне описать события MouseLeftButtonDown? |
Автор: Lion_Smith 25.3.2008, 13:12 |
Неужели ни кто не знает? Пипец.. а как вы в VS 2008 программируите?? Или тут все такие мегамозги? |
Автор: Dennnis 25.3.2008, 15:50 |
Или у тебя VS 2008 кривая или ты тупишь. |
Автор: Lion_Smith 25.3.2008, 18:27 |
VS 2008 скачал из инета с официального сайта Майкрософт, буквально как только её выложили. Может месяца 2 назад, точно не помню! В простом проекте WindowsForm у меня ни каких проблем нет. А вот в WPF проектах, которые используют фрэймворк 3.5 есть вот такое маленькое неудобство. Читал, где-то что для VS 2005 похожая проблема была, неужели не исправили до сих пор? В файле приложении лежит снимок окна VS 2008 |
Автор: Dennnis 26.3.2008, 09:22 |
Извини, это я ступил ![]() Там реально только одно событие Click, и даже в Xaml'е ничего не пропишешь, если только сам не унаследуешь от System.Windows.Controls.Primitives.ButtonBase и не реализуешь OnMouseMove, OnKeyUp, или чё те надо ![]() |
Автор: Lion_Smith 28.3.2008, 12:57 | ||||||||||||
Кароче, как было! ![]() Берём VS 2008! Создаём новый WPF проект (хоть оконный, хоть для браузера.. один хрен)! Как известно технология WPF входит в состав FW 3.0 и выше.. и радует нас тем, что интерфейс (считай всё окно, контролы на этом окне, их способ окрашивания, анимация, расположение, и всякого рода активность/события и свойства, которые в обычном WinForm проекте описывались на C# в файле Form1.Designer.cs) описывается в Window1.xaml на специальном XML подобном языке ориентированном на дизайнера. А код пишется программистом в Window1.xaml.cs. На самом деле очень удобно! ![]() Всё бы ни чего! И по уму сделано. Но так как технология сама по себе революционная, то приходится мириться с некоторыми (надеюсь временными) неудобствами. В частности если раньше с событиями разбираться было просто выбрав в свойствах нужное нам и активировав его двойным щелчком, то теперь надо потратить время на то что бы написать шапку к событию иному чем простой клик, да и клик то иногда не так просто описать. Вот простой пример: В новом WPF проете закидываем на форму кнопку button1 и наблюдаем в XAML появление следующей строчки <Button Height="23" Margin="237.5,133.75,306.25,0" Name="button1" VerticalAlignment="Top">Button</Button>:
Привычно дважды щёлкаем по этой кнопке и в C# появляется:
а если вернуться обратно в XAML, то мы заметим следующее изменение в описании кнопки:
Теперь мы знаем механизм добавления события к любому элементу WPF при его описании. Правда реализовывать этот механизм для любого другого события придётся ручками.. Гибкость на грани фантастики! Все говорим спасибо разработчикам в Microsoft! ![]() ПРОДОЛЖАЕМ: Добавим на форму элемент Label и сделаем так, что бы можно было таскать форму за этот самый Label. 1) закидываем на форму Label и наблюдаем в XAML следующую строчку:
в ручную добавлем к нему событие
и так же в ручную в C# пишем обработчик события:
Если не знаем как писать правильно обработчик для какого-нибудь события, то его можно создать в WinForms и потом Ctrl+C, Ctrl+V перенести в вашу программу. Всё! Вот так теперь и выкручиваемся! PS: Для людей практикующих VB.Net таких сложностей нет. Там всё просто. Почему бы уже не скрестить функциональность окошка кодинга VB с окном кодинга C#, ведь так удобно было бы... Добавлено через 1 минуту и 37 секунд Вопрос решён! |