![]() |
![]() |
|
![]() Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Практический пример. Отображение координат мыши при ее перемещении.Данная программа показывает механизм использования обработчиков события передвижения мыши для формы и ее дочерних объектов. using System; using System.Drawing; using System.Windows.Forms; namespace CSharpApplication.MouseAndLabelAndButton { // Класс, содержащий форму, надпись и кнопку class MouseCoords : Form { // Элемент управления Надпись Label lCoords = new Label(); // Элемент управления Кнопка Button bCoords = new Button(); static void Main() { // Запуск приложения Application.Run(new MouseCoords()); } // Конструктор MouseCoords() { // Родитель lCoords.Parent = this; // Подгонка размеров под отображаемый текст lCoords.AutoSize = true; // Тонкая рамка lCoords.BorderStyle = BorderStyle.FixedSingle; // Обработчик движения мыши над поверхностью надписи // для случая попадания мыши на клиентскую область надписи lCoords.MouseMove += new MouseEventHandler(lCoords_MouseMove); // Родитель bCoords.Parent = this; // Плоская кнопка bCoords.FlatStyle = FlatStyle.Flat; // Ширина bCoords.Width = 100; // Обработчик движения мыши над поверхностью кнопки // для случая попадания мыши на клиентскую область кнопки bCoords.MouseMove += new MouseEventHandler(bCoords_MouseMove); // Заголовок формы Text = "Бегаем за мышкой..."; // Форма отбражается в развернутом виде WindowState = FormWindowState.Maximized; } // Обработчик передвижения мыши над поверхностью формы protected override void OnMouseMove(MouseEventArgs ea) { // Вызов базового обработчика base.OnMouseMove(ea); // Определяем новое месторасположение надписи на форме lCoords.Location = new Point(ea.X + 1, ea.Y); // Отображаем на надписи клиентские координаты мыши lCoords.Text = String.Format("X = {0,-5}Y = {1}", ea.X, ea.Y); // Определяем новое месторасположение кнопки на форме bCoords.Location = new Point(ea.X + 1, ea.Y - bCoords.Height); // Отображаем на кнопке клиентские координаты мыши bCoords.Text = String.Format("X = {0,-5}Y = {1}", ea.X, ea.Y); } // Обработчик передвижения мыши над поверхностью надписи private void lCoords_MouseMove(object sender, MouseEventArgs ea) { // Вычисление месторасположения курсора мыши на форме // с помощью преобразования экранных координат в // координаты формы Point pt = PointToClient(Control.MousePosition); pt.X += 1; // Перемещаем надпись lCoords.Location = pt; // Отображаем на надписи клиентские координаты мыши lCoords.Text = String.Format("X = {0,-5}Y = {1}", pt.X, pt.Y); } // Обработчик передвижения мыши над поверхностью кнопки private void bCoords_MouseMove(object sender, MouseEventArgs e) { // Вычисление месторасположения курсора мыши на форме // с помощью преобразования экранных координат в // координаты формы Point pt = PointToClient(Control.MousePosition); pt.X += 1; pt.Y -= bCoords.Height; // Перемещаем кнопку bCoords.Location = pt; // Отображаем на кнопке клиентские координаты мыши bCoords.Text = String.Format("X = {0,-5}Y = {1}", pt.X, pt.Y); } } } Прелюдия к практическому примеру.В данной главе рассматриваются некоторые моменты, присутствующие в следующем практическом примере (уже классическом) игре "Пятнашки". ТаймерКласс System.Windows.Forms.Timer предназначен для инициирования события через определенные пользователем интервалы времени. Этот таймер оптимизирован для использования в приложениях Windows Forms, и должен быть использован для работы с окнами. Свойства
Методы
События
Меню верхнего уровняИерархия: System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Menu System.Windows.Forms.MainMenu Некоторые методы и свойстваpublic MainMenu(); - конструктор для создания меню без элементов public MainMenu(MenuItem[] items); - конструктор для создания меню с набором элементов. public Menu.MenuItemCollection MenuItems {get;} - получение коллекции элементов, ассоциированных с меню. public virtual MainMenu CloneMenu(); - создание копии текущего меню public Form GetForm(); - получение формы, содержащей меню (null - в случае отсутствия таковой). public virtual void MergeMenu(Menu menuSrc); - слияние меню public MenuItem(string text, EventHandler onClick, Shortcut shortcut); - конструктор для создания пункта меню. text - заголовок пункта onClick - обработчик выбора пункта меню shortcut - акселератор (горячая клавиша для выбора пункта меню). |
|
Библиотека программиста. 2009. |
|