На этом шаге мы закончим изучение основных свойств формы.
Продолжим изучение основных свойств формы.
Рис.1. Кнопка HelpButton
Обработка кнопки состоит в создании обработчика события HelpRequested формы.
Как создавать обработчики событий, мы рассмотрим позже. Однако следует помнить, что кнопка помощи появится в заголовке формы при условии, что кнопки (это свойства формы) MaximizeBox и MinimizeBox будут отключены (т. е. в заголовке окна не будет кнопок свертывания и развертывания окна формы (рисунок 1)). Кроме того, после создания обработчика кнопка реагирует только на нажатие клавиши F1, т. е. обычной клавиши помощи. Код обработчика события HelpRequested приведен ниже, а результат нажатия клавиши F1- на рисунке 2.
private: System::Void Form1_HelpRequested(System::Object^ sender, System::Windows::Forms::HelpEventArgs^ hlpevent) { MessageBox::Show("Проверка действия кнопки Help", "Приложение", MessageBoxButtons::OK,MessageBoxIcon::Asterisk); }
Рис.2. Проверка действия кнопки Help
Рис.3. Выпадающий список свойства ImeMode
Например, когда форма начинает изменять свои размеры, происходит событие Resize, когда форма начинает на экране прорисовываться, наступает событие Paint, когда над формой появляется курсор мыши, возникает событие MouseMove и т. д.
Чтобы отреагировать на появление события, формируют специальные участки программы, называемые обработчиками событий. В этих обработчиках программисты пишут команды на C/C++, которые и отражают реакцию на событие.
Например, мы хотим, чтобы при щелчке мышью на форме форма изменила цвет. Для этого мы должны создать обработчик события формы с именем Click. Заготовка обработчика события формируется довольно просто: надо открыть вкладку Events (События) в окне Propeitis (Свойства), выбрать нужное событие, на которое мы хотим предусмотреть реакцию (допустим, это событие Click, возникающее при щелчке мышью в поле формы), и дважды щелкнуть мышью в поле этого события. Среда программирования мгновенно создаст в h-файле формы заготовку: заголовок функции, которая должна будет выполняться сразу, как только наступит это событие, и пустое тело функции, в которое мы должны вписать свои команды на C/C++, отражающие алгоритм реакции на событие.
Для нашего примера надо изменить цвет формы, а это можно сделать, если ее свойству ForeColor придать значение требуемого цвета.
А теперь что касается свойства KeyPreview. Когда это свойство принимает значение true, то форма получает все события KeyPress (событие KeyPress возникает, когда нажимается несимвольная клавиша (например, управляющая), однако вместе с этим возникают и события KeyDown и KeyUp).
Событие KeyDown чаще всего возникает при нажатии на клавиши Tab, Enter, Esc, а событие KeyUp возникает, когда нажатую клавишу отпускают. Причем эти события наступают для формы раньше, чем они наступают для тех ее компонентов, которые в данный момент породили такие события. Например, существует компонент TextBox, с помошью которого вводят данные с клавиатуры. При включенном свойстве KeyPreview у формы, как только нажали клавишу для ввода символа в поле компонента TextBox, сразу возникают указанные события. И только после этого они (эти события) возникнут у самого компонента TextBox.
Если же свойство KeyPreview отключено, то при нажатии клавиш в поле TextBox рассмотренные события наступят только для TextBox.
Рис.4. Заблокированная форма
Рис.5. Форма при 20% значении затемненности
Рис.6. Демонстрация разницы между свойствами Padding и Margin
Рис.7. Демонстрация задания свойства SizeGripStyle
На следующем шаге мы рассмотрим события формы.