Вход/Регистрация
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
вернуться

Троелсен Эндрю

Шрифт:

 this.toolStripButtonGrowFont.Name = "toolStripButtonGrowFont";

 this.toolStripButtonGrowFont.Text = "toolStripButton2";

 this.toolStripButtonGrowFont.ToolTipText = "Увеличить шрифт";

 this.toolStripButton.GrowFont.Click += new System.EventHandler(this.toolStripButtonGrowFont_Click);

 …

}

Замечание. Обратите внимание на то, что значение, присваиваемое свойству Image типа ToolStripButton, получается с помощью метода GetObject. Как будет показано в следующей главе, этот метод используется для извлечения встроенных ресурсов, используемых компоновочным блоком.

Остальной программный код чрезвычайно прост. В следующем обновленном MainWindow обратите внимание на то, что текущий размер шрифта ограничивается значениями из диапазона между 12 и 70.

public partial class MainWindow: Form {

 // Текущий, минимальный и максимальный размеры шрифта.

 int currFontSize = 12;

 const int MinFontSize =12;

 const int MaxFonfSize = 70;

 publiс MainWindow {

InitializeComponent;

CenterToScreen;

Text = string.Format("Выбранный вами размер шрифта: {0}", currFontSize);

 }

 private void toolStripButtonShrinkFont_Click(object sender, EventArgs e) {

// Уменьшение размера шрифта на 5 и обновление экрана.

currFontSize -= 5;

if (currFontSize ‹= MinFontSize) currFontSize = MinFontSize;

Text = string.Format("Выбранный вами размер шрифта: {0}", currFontSize);

Invalidate;

 }

 private void toolStripButtonGrowFont_Click(object sender, EventArgs e) {

// Увеличение размера шрифта на 5 и обновление экрана.

currFontSize += 5;

if (currFontSize ›= MaxFontSize) currFontSize = MaxFontSize;

Text = string.Format("Выбранный вами размер шрифта: {0}", currFontSize);

Invalidate;

 }

 private void MainWindow_Paint(object sender, PaintEventArgs e) {

// Отображение сообщения пользователя.

Graphics g = e.Graphics;

g.DrawString(toolStripTextBoxMessage.Text, new Font("Times New Roman", currFontSize), Brushes.Black, 10, 60);

 }

}

В качестве заключительного штриха, чтобы гарантировать, что пользовательское сообщение будет обновлено, как только ToolStripTextBox утратит фокус, обработайте событие LostFocus и вызовите Invalidate для формы в рамках сгенерированного обработчика события.

public partial class MainWindow: Form {

 …

 public MainWindow {

…

this.toolStripTextBoxMessage.LostFocus += new EventHandler(toolStripTextBoxMessage_LostFocus);

 }

 void toolStripTextBoxMessage_LostFocus(object sender, EventArgs e) {

Invalidate;

 }

 …

}

Работа с ToolStripContainer

Типы ToolStrip, если требуется, можно настроить так, чтобы они могли "стыковаться" с любой стороной и даже со всеми сторонами содержащей их формы. Для иллюстрации того, как это сделать, щелкните правой кнопкой мыши на своем элементе ToolStrip в окне проектирования фирмы и выберите Embed In ToolStripContainer (Встроить в контейнер). После этого ToolStrip будет помещен В ToolStripContainer. Для нашего примера выберите опцию Dock Fill In Form (Стыковка ко всей форме) риc. 10.23.

Рис. 19.23. Стыковка ToolStripContainer ко всей форме

Запустив эту модификацию приложения, вы увидите, что ToolStrip может перемещаться и стыковаться к любой стороне контейнера. Однако ваше пользовательское сообщение исчезнет. Причина в том, что типы ToolStripContainer являются для формы дочерними элементами управления. Так что графическое отображение на самом деле выполняется, но вывод скрыт контейнером, который сейчас накрывает всю клиентскую область формы.

  • Читать дальше
  • 1
  • ...
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: