Рисующее приложение в версии .NET, страница 4

C#TB

Напомним, что она использует компонет ImageList. Что же скрывается под термином  компонент? Компонент — это класс, удовлетворяющий стандарту взаимодействия с CLR и, следовательно, с приложениями-контейнерами компонентов. Стандарт облегчает сборку сложных приложений из простых компонентов. Он обеспечивается наследованием и реализацией методов интерфейса IComponent. Любой класс, который реализует (implements) интерфейс IComponent, является компонентом. Процедура создания и авторизации компонентов описана в документе, называемом CLS (Common Language Specification), который вы найдете в MSDN. Он содержит сведения о том, как следует проводить авторизацию компонентов, чтобы они могли взаимодействовать с CLR.

Главное окно MDI-приложения, кроме меню и панели инструментов, обычно содержит статус строку, в которую в разные моменты жизни приложения автоматически выводятся строки текста. Они являются либо подсказками для пользователя, либо отражают текущее состояние активных элементов управления. Найдите в Toolbox элемент под именем StatusBar и поместите его на оконную форму. Скорректируйте свойство Text элемента на For Help,  press F1, так как мы собираемся связать с главным окном еще один Windows Forms-компонент, называемый HelpProvider. Компонент HelpProvider связывает HTML Help-файл с Windows-приложением. Таким файлом может быть либо chm-файл (Compiled Help File), генерируемый утилитой HTML Help Workshop (Hhw.exe), либо обычный htm-файл. Добавка  компонента HelpProvider позволяет:

¨  Вызывать контекстно-чувствительные справки для элементов управления, расположенных на форме или в окне диалога.

¨  Открывать Help-файлы типа Table of Contents, Index или Search.

Добавьте компонент HelpProvider, выбрав его в окне Toolbox и положив на форму. Задайте свойство (Name) компонента равным helpProvider. Переведите фокус в главное окно и убедитесь в том, что в списке его свойств появились новые строки (HelpKeyword on helpProvider и другие). С элементами управления формы или диалога можно связывать отдельные строки текста. Это делается с помощью метода SetHelpString класса HelpProvider. Текст, связанный с текущим активным элементом управления, появляется во всплывающем окне (pop-up window) в момент нажатия пользователем клавиши F1. Для того, чтобы связать компонент справочной системы с реакцией на нажатие кнопки F1, установите в True свойство ShowHelp on helpProvider. Просмотрите файл MainWindow.cs (раздел Windows Form Designer generated code). Там появилась строка:

this.helpProvider.SetShowHelp(this, true);

Для проверки простейшего режима функционирования компонента введите строку “This is the main window” в качестве свойства HelpString on helpProvider главного окна и запустите приложение (Ctrl+F5). Когда системный фокус перейдет в окно нашего приложения нажмите клавишу F1. Вы должны увидеть текст “This is  the main window”, всплывший в том месте экрана, где расположен курсор мыши.

Более сложное поведение компонента обнаружится, если предварительно создать htm-файл, а затем задать его файловый путь в строке HelpNamespace списка свойств компонента helpProvider. Файл справки связывается с компонентом с помощью set-составляющей свойства свойства HelpNamespace. Дайте команду File4New4File, выберите категорию General, шаблон HTML Page и нажмите кнопку Open. В появившемся окне редактора нового htm-файла присутствуют две вкладки Design и HTML. Просмотрите обе, сделайте активным режим Design и введите произвольный текст типа “This is our help file”. Запишите файл под именем DrawHelp, поместив его в папку проекта. Далее, откройте окно дизайна главного окна MainWindow, выделите компонент helpProvider и с помощью кнопки выбора, которая возникает в окне свойства HelpNamespace, задайте файловый путь к файлу DrawHelp.htm. Запустив приложение и нажав клавишу F1, вы увидите, что файл открылся в окне Internet Explorer.