Подготовка HTML-страниц
Исходные страницы справки лучше всего создавать в одном из пакетов верстки web-страниц, например, Microsoft Front Page. Справка будет состоять из 36 страниц, связанных между собой. В качестве фонового цвета на всех страницах я выбрал светло-голубой (Тег <body bgcolor="#66CCFF">). Для копирования кода я свернул все методы и обработчики в проекте в блоки, а при вставке в документ они автоматически разворачивались (рис. 8.2):
Рис. 8.2. Копирование блоков кода
Таблица 8.1 содержит данные о страницах справки. Желательно самим создать HTML-страницы со всеми ссылками, указанными в этой таблице.
AboutForm.htm | Свойства формы About |
Свойства формы About: |
Форма About, свойство | Значение |
Name | About |
FormBorderStyle | FixedSingle |
MaximizeBox | False |
MinimizeBox | False |
Size | 318; 214 |
Text | About Notepad C# |
Внешний вид формы в режиме дизайна:
Главное окно программы
Полный листинг формы About. (ссылка на FullCodeAbout.htm)
Обработчик пункта меню About Program..., форма frmmain (ссылка на frmmain.htm):
private void mnuAbout_Click(object sender, System.EventArgs e) { //Создаем новый экземпляр формы About About frm = new About(); frm.Show(); }
При выборе этого пункта меню появляется форма About (ссылка на AboutForm).
Обработчик пункта меню Arrange Icons, форма frmmain (ссылка на frmmain.htm):
private void mnuArrangeIcons_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.ArrangeIcons); }
Свойства формы blank:
Внешний вид формы в режиме дизайна:
При выборе этого пункта меню появляется форма About (ссылка на AboutForm).
Свойства формы blank:
Внешний вид формы в режиме дизайна:
Полный листинг формы blank. (ссылка на FullCodeblank.htm)
Метод Copy формы blank (ссылка на blank.htm):
public void Copy() { this.BufferText = richTextBox1.SelectedText; }
Метод Cut формы blank (ссылка на blank.htm):
public void Cut() { this.BufferText = richTextBox1.SelectedText; richTextBox1.SelectedText = ""; }
Метод Delete формы blank (ссылка на blank.htm):
public void Delete() { richTextBox1.SelectedText = ""; this.BufferText = ""; }
Метод Open формы blank (ссылка на blank.htm):
public void Open(string OpenFileName) { /// Вставьте сюда код из проекта }
Метод Paste формы blank (ссылка на blank.htm):
public void Paste() { richTextBox1.SelectedText = this.BufferText; }
Метод Save формы blank (ссылка на blank.htm):
public void Save(string SaveFileName) { ///Вставьте сюда код из проекта }
Метод Select All формы blank (ссылка на blank.htm):
public void SelectAll() { richTextBox1.SelectAll(); }
Обработчик пункта меню Cascade, форма frmmain (ссылка на frmmain.htm):
private void mnuCascade_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.Cascade); }
Обработчик пункта меню Color, форма frmmain (ссылка на frmmain.htm):
private void mnuColor_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
Обработчик пункта меню Copy, форма frmmain (ссылка на frmmain.htm):
private void mnuCopy_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Copy(); }
В коде вызывается метод Copy (ссылка на blankCopy.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Cut, форма frmmain (ссылка на frmmain.htm):
private void mnuCut_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Cut(); }
В коде вызывается метод Cut (ссылка на blankCut.htm.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Delete, форма frmmain (ссылка на frmmain.htm):
private void mnuDelete_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Delete(); }
В коде вызывается метод Delete (ссылка на blankDelete.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Exit, форма frmmain (ссылка на frmmain.htm):
private void mnuExit_Click(object sender, System.EventArgs e) { this.Close(); }
Обработчик пункта меню Find, форма frmmain (ссылка на frmmain.htm):
private void mnuFind_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
При выборе этого пункта меню появляется форма FindForm (ссылка на FindForm.htm).
Свойства формы FindForm:
Внешний вид формы в режиме дизайна:
Полный листинг формы FindForm. (Ссылка на FullCodeFindForm.htm)
Обработчик пункта меню Font, форма frmmain (ссылка на frmmain.htm):
private void mnuFont_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
Свойства формы frmmain:
Полный листинг формы frmmain. (Ссылка на FullCodefrmmain.htm)
Полный листинг формы About:
///Вставьте сюда код из проекта
Полный листинг формы blank:
///Вставьте сюда код из проекта
Полный листинг формы FindForm:
///Вставьте сюда код из проекта
Полный листинг формы frmmain:
///Вставьте сюда код из проекта
Программа Notepad C# была сделана в ходе изучения элементов программирования на языке C# для Windows. По своей функциональности она напоминает что-то среднее между блокнотом и текстовым редактором WordPad. Некоторые фрагменты кода были приведены в чистом виде, без блоков обработки исключений. В результате при выборе неподходящих действий — например, операций работы с текстом при отсутствии бланка, — возможны ошибки. Поскольку исходный код программы прилагается, Вы можете добавить соответствующие блоки. Также, используя свойство Enabled и Visible элементов, можно получить недоступность или невидимость элементов, работа с которыми в определенные моменты вызывает исключения
Обработчик пункта меню New, форма frmmain (ссылка на frmmain.htm):
private void mnuNew_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
Обработчик пункта меню Notepad C# Help, форма frmmain (ссылка на frmmain.htm):
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); } }
Обработчик пункта меню Open, форма frmmain (ссылка на frmmain.htm):
private void mnuOpen_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
В коде вызывается метод Open (ссылка на blankOpen.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Paste, форма frmmain (ссылка на frmmain.htm):
private void mnuPaste_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Paste(); }
В коде вызывается метод Paste (ссылка на blankPaste.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Save, форма frmmain (ссылка на frmmain.htm):
private void mnuSave_Click(object sender, System.EventArgs e) { //Переключаем фокус на данную форму. blank frm = (blank)this.ActiveMdiChild; //Вызываем метод Save формы blank frm.Save(frm.DocName); frm.IsSaved = true; }
В коде вызывается метод Save (ссылка на blankSave.htm) формы blank (ссылка на blank.htm)
Обработчик пункта меню Save As, форма frmmain (ссылка на frmmain.htm):
private void mnuSaveAs_Click(object sender, System.EventArgs e) { ///Вставьте сюда код из проекта }
Обработчик пункта меню Select All, форма frmmain (ссылка на frmmain.htm):
private void mnuSelectAll_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.SelectAll(); }
В коде вызывается метод Select All (ссылка на blankSelectAll.htm) формы blank (ссылка на blank.htm)
Все возможности программы собраны в нескольких пунктах главного меню:
В пункте File собраны основные операции открытия и сохранения документа ( New (ссылка на New.htm), Open (ссылка на Open.htm), Save (ссылка на Save.htm), Save As (ссылка на SaveAs.htm), Exit (ссылка на Exit.htm)):
В пункте Edit расположены операции работы с текстом (Cut (ссылка на Cut.htm), Copy (ссылка на Copy.htm), Paste (ссылка на Paste.htm), Delete (ссылка на Delete.htm), Select All (ссылка на SelectAll.htm), Find (ссылка на Find.htm)):
Пункт Format позволяет задать свойства шрифта, такие как цвет, размер, стиль (Font (ссылка на Font.htm), Color (ссылка на Color.htm)) :
Для упорядочивание нескольких открытых документов используется пункт меню Window (Arrange Icons (ссылка на ArrangeIcons.htm), Cascade (ссылка на Cascade.htm), Tile Horizontal (ссылка на TileHorizontal.htm), Tile Vertical (ссылка на TileVertical.htm)):