|
Программирование >> Автоматически обновляемые приложения
buttonl.Width = (int)graphics.MeasureString(strTextForButton, Font).Width; this.Text = buttonl.Width.ToStringO; Для сравнения закомментируйте строчки кода, начиная со слов using (Graphics g...), и снова запустите проект. Вы увидите, что текст, который не может поместиться на кнопке, просто обрезается. На рис. 6.2 для наглядности представлены оба варианта. Тестовая строкааааснааааааааа Рис. 6.2. Подгоняем размеры кнопки под текст Примечание Пример находится в папке MeasureStringDemo на прилагаемом диске. Как сделать элемент управления произвольной формы? с помощью свойства Region создание элемента управления произвольной формы становится тривиальной задачей. Причем не нужно создавать собст- венных элементов управления, можно использовать готовые кнопки, метки и т. д. Возьмем, к примеру, стандартную кнопку Button. Пусть при нажатии на эту кнопку она примет овальную форму (листинг 6.9 и рис. 6.3). 1ш Овальная кнопка Рис. 6.3. Создание овальной кнопки Листинг 6.9. Превращение стандартной кнопки в овальную private void buttonl Click(object sender, EventArgs e) { GraphicsPath gp = new GraphicsPath(); Graphics g = CreateGraphics(); Создадим новый прямоугольник с размерами кнопки Rectangle smallRectangle = buttonl.ClientRectangle; уменьшим размеры прямоугольника smallRectangle.Inflate(-3, -3); создадим эллипс, используя полученные размеры др.AddEllipse(smallRectangle); buttonl.Region = new Region(gp); рисуем окантовоку для круглой кнопки g.DrawEllipse(new Pen(Color.Gray, 2), buttonl.Left + 1, buttonl.Top + 1, Кнопки {Button) Как установить кнопку по умолчанию для формы? Кнопкой по умолчанию (Default) является кнопка на форме, которая реагирует на нажатие клавиши <Enter>. На форме может быть только одна такая кнопка. Чтобы сделать любую вашу кнопку на форме кнопкой по умолчанию, присвойте свойству формы AcceptButton кнопку, которой нужно придать такое поведение. Это можно сделать на этапе разработки или программным способом следующим образом: forml.AcceptButton = buttonl; Как установить кнопку отмены (Cancel) для формы? Кроме кнопки по умолчанию на форме может присутствовать также и кнопка отмены, которая реагирует на нажатие клавиши <Esc>. У формы есть свойство CanceiButton, которое отвечает за подобное поведение кнопки. Вы можете установить это свойство в дизайнере форм или программным способом: forml.CanceiButton = buttonl; Как программно вызвать событие Click у кнопки? Если вы раньше программировали на Visual Basic 6.0, то у вас не было проблем с этой задачей. Достаточно было вызвать событие Commandiciick в buttonl.Width - 3, buttonl.Height - 3) ; освобождаем ресурсы g.Dispose (); Примечание Проект находится в папке OvalButton на прилагаемом диске.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |