При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан. Затем: Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз. |
Справочные материалы. перевод приложений. специальные возможности
Создание вкладки "Избранное"
При работе с большой справочной системой удобно организовывать собственную мини-справку, добавляя страницы в "Избранное" (рис. 8.15).
Для добавления этой возможности в проекте notepadhelp.hhp переходим на вкладку Project и нажимаем на кнопку(Add/Modify window definition). В появившемся окне переходим на вкладку Navigation Pane, в группе Tabs ставим галочку в чекбоксе Favorites tab (рис. 8.16).
Закрываем окно свойств и снова компилируем проект.
Тестирование и отладка справки
В конце работы мы должны получить один скомпилированный файл .chm, содержащий в себе все HTML-страницы, рисунки на них и ссылки. При компиляции проекта следует обращать внимание на окно отладки, в котором выводится результаты компиляции. Если процесс прошел успешно, выводится следующая информация:
Microsoft HTML Help Compiler 4.74.8702 Compiling d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm Compile time: 0 minutes, 2 seconds 38 Topics 184 Local links 0 Internet links 1 Graphic Created d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm, 77,290 bytes Compression decreased file by 1,321,411 bytes.
Если программа сталкивается с ошибкой1Подробнее о предупреждениях и ошибках см. в следующем разделе справки HTML Help Workshop: Creating Help/Compile and Test Help/Compile a Help Project/Compiler messages. — например, с отсутствием части страниц, — она продолжит компиляцию и в конце выведет соответствующий отчет:
Microsoft HTML Help Compiler 4.74.8702 Compiling d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm HHC5003: Error: Compilation failed while compiling HelpPages\Paste.htm. HHC5003: Error: Compilation failed while compiling HelpPages\Save.htm. HHC5003: Error: Compilation failed while compiling HelpPages\SaveAs.htm. The following files were not compiled: HelpPages\Paste.htm HelpPages\Save.htm HelpPages\SaveAs.htm
При компиляции большой справочной системы желательно сохранять отладочные сообщения в виде файлов (рис. 8.17).
Если по разным причинам вам не удается скомпилировать проект, лучше всего восстановить его заново — при наличии файла содержания .hhc и файла указателя .hhk сделать это достаточно просто.
На диске, прилагаемом к книге, вы найдете файлы notepadhelp.chm, notepadhelp.hhp, ContentsNhelp.hhc, notepadhelp.hhk и Test1.log в каталоге Code\Glava8\HELP.
Добавление готового файла справки к приложению
Теперь, когда у нас есть готовый файл справки, нам остается только добавить его к приложению Notepad C#. Скопируем файл notepadhelp.chm в папку bin/Debug приложения. В главном меню формы frmmain добавляем новый пункт, устанавливая следующие свойства:
Во "Работа с элементами управления" мы проходили запуск программ из приложения. Здесь внешней программой будет файл notepadhelp.chm; переходим в код формы и подключаем соответствующее пространство имен:
using System.Diagnostics;
Создаем обработчик пункта меню mnunotepadhelp:
private void mnunotepadhelp_Click(object sender, System.EventArgs e) { try { Process SysInfo = new Process(); SysInfo.StartInfo.ErrorDialog = true; SysInfo.StartInfo.FileName = "notepadhelp.chm"; SysInfo.Start(); } catch (Exception ex) { MessageBox.Show (ex.Message); } }
Запускаем приложение. Справка вызывается при выборе пункта меню Notepad C# Help или нажатии клавиши F1.
Декомпиляция готовых файлов справки формата chm
Программа HTML Help Workshop позволяет разбирать готовые файлы в формате chm на составляющие страницы. Запускаем программу, в меню File выбираем Decompile, в поле Destination folder указываем путь к папке, в которую будут помещаться извлеченные HTML-файлы, в поле Compiled help file — путь к файлу chm.
После декомпиляции в указанной папке появятся файлы содержания hhc, указателя hhk и исходная папка с HTML-страницами (рис. 8.19).