- •Лабораторная работа 5-6
- •Теоретические сведения
- •События.
- •Элементы управления. Кнопки и надписи.
- •Некоторые общие методы и свойства
- •Некоторые свойства кнопки
- •Некоторые свойства надписи
- •Прелюдия к практическому примеру.
- •Меню верхнего уровня
- •Некоторые методы и свойства
- •Лабораторная работа 5-6
- •Литература
Некоторые свойства кнопки
public virtual Image BackgroundImage {get; set;} - фоновая картинка для кнопки.
public bool TabStop {get; set;} - участие в переходах по клавише Tab между элементами управления.
Некоторые свойства надписи
public virtual bool AutoSize {get; set;} - способность надписи подгонять свой размер под содержимое (например, под длину и высоту отображаемого текста).
public virtual BorderStyle BorderStyle {get; set;} - стиль рамки для надписи. Варианты: Fixed3D - трехмерная рамка; FixedSingle - рамка из одной линии; None - отсутствие рамки.
Более подробную информацию можно получить, изучив практические
примеры, или заглянув в MSDN.
Практический пример. Отображение координат мыши при ее перемещении.
Данная программа показывает механизм использования обработчиков события передвижения мыши для формы и ее дочерних объектов.
<исходники> ..\Program\Applications\MouseWithStaticAndButton
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);
}
}
}