Создание Windows-приложений на основе Visual C#

         

Листинг форм frmmain и blank проекта NotepadCSharp


Листинг 2.19. Форма frmmain (html, txt)

Листинг 2.20. Форма blank (html, txt)


using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO;

namespace NotepadCSharp {

public class frmmain : System.Windows.Forms.Form { private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.MenuItem menuItem12; private System.Windows.Forms.MenuItem mnuFile; private System.Windows.Forms.MenuItem mnuNew; private System.Windows.Forms.MenuItem mnuOpen; private System.Windows.Forms.MenuItem mnuSave; private System.Windows.Forms.MenuItem mnuExit; private System.Windows.Forms.MenuItem mnuEdit; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.MenuItem mnuCut; private System.Windows.Forms.MenuItem mnuCopy; private System.Windows.Forms.MenuItem mnuPaste; private System.Windows.Forms.MenuItem mnuDelete; private System.Windows.Forms.MenuItem mnuSelectAll; private System.Windows.Forms.MenuItem mnuHelp; private System.Windows.Forms.MenuItem mnuAbout;

private System.Windows.Forms.MenuItem mnuArrangeIcons; private System.Windows.Forms.MenuItem mnuCascade; private System.Windows.Forms.MenuItem mnuTileHorizontal; private System.Windows.Forms.MenuItem mnuTileVertical; private System.Windows.Forms.MenuItem mnuWindow; private int openDocuments = 0; private System.Windows.Forms.MenuItem mnuFormat; private System.Windows.Forms.SaveFileDialog saveFileDialog1; private System.Windows.Forms.MenuItem mnuSaveAs; private System.Windows.Forms.FontDialog fontDialog1; private System.Windows.Forms.MenuItem mnuFont; private System.Windows.Forms.MenuItem mnuColor; private System.Windows.Forms.ColorDialog colorDialog1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem mnuFind; private System.Windows.Forms.ToolBarButton tbNew; private System.Windows.Forms.ToolBarButton tbOpen; private System.Windows.Forms.ToolBarButton tbSave; private System.Windows.Forms.ToolBarButton tbCut; private System.Windows.Forms.ToolBarButton tbCopy; private System.Windows.Forms.ToolBarButton tbPaste; private System.Windows.Forms.ImageList imageList1; private System.Windows.Forms.ToolBar toolBarMain; private System.ComponentModel.IContainer components;




public frmmain() { // // Required for Windows Form Designer support // InitializeComponent(); mnuSave.Enabled = false;

// // TODO: Add any constructor code after InitializeComponent call // }

/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); }

region Windows Form Designer generated code

[STAThread] static void Main() { Application.Run(new frmmain()); }

private void mnuNew_Click(object sender, System.EventArgs e) { //Создаем новый экземпляр формы frm blank frm = new blank();

frm.DocName = "Untitled " + ++openDocuments; //Указываем, что родительским контейнером //нового экземпляра будет эта, главная форма. frm.MdiParent = this; frm.Text = frm.DocName; //Вызываем форму frm.Show(); }



private void mnuArrangeIcons_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.ArrangeIcons); }

private void mnuCascade_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.Cascade); }

private void mnuTileHorizontal_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.TileHorizontal); }

private void mnuTileVertical_Click(object sender, System.EventArgs e) { this.LayoutMdi(MdiLayout.TileVertical); }

private void mnuCut_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Cut(); }

private void mnuCopy_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Copy(); }

private void mnuPaste_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Paste(); }

private void mnuDelete_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.Delete(); }

private void mnuSelectAll_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.SelectAll(); }

private void mnuOpen_Click(object sender, System.EventArgs e) { //Можно программно задавать доступные для обзора расширения файлов. //openFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files(*.*)|*.*";



// Если выбран диалог открытия файла, выполняем условие if (openFileDialog1.ShowDialog() == DialogResult.OK) { //Создаем новый документ blank frm = new blank(); //Вызываем метод Open формы blank frm.Open(openFileDialog1.FileName); //Указываем, что родительской формой является форма frmmain frm.MdiParent = this; //Присваиваем переменной DocName имя открываемого файла frm.DocName = openFileDialog1.FileName; //Свойству Text формы присваиваем переменную DocName frm.Text = frm.DocName; //Вызываем форму frm frm.Show(); mnuSave.Enabled = true; }

}

private void mnuSave_Click(object sender, System.EventArgs e) { //Переключаем фокус на данную форму. blank frm = (blank)this.ActiveMdiChild; //Вызываем метод Save формы blank frm.Save(frm.DocName); frm.IsSaved = true;

}

private void mnuSaveAs_Click(object sender, System.EventArgs e) { mnuSave.Enabled = true; //Можно программно задавать доступные для обзора расширения файлов //openFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files(*.*)|*.*";

//Если выбран диалог открытия файла, выполняем условие if (saveFileDialog1.ShowDialog() == DialogResult.OK) { //Переключаем фокус на данную форму. blank frm = (blank)this.ActiveMdiChild; //Вызываем метод Save формы blank frm.Save(saveFileDialog1.FileName); //Указываем, что родительской формой является форма frmmain frm.MdiParent = this; //Присваиваем переменной FileName имя сохраняемого файла frm.DocName = saveFileDialog1.FileName; //Свойству Text формы присваиваем переменную DocName frm.Text = frm.DocName; frm.IsSaved = true;

}

}

private void mnuExit_Click(object sender, System.EventArgs e) { this.Close(); }

private void mnuFont_Click(object sender, System.EventArgs e) { //Переключаем фокус на данную форму. blank frm = (blank)this.ActiveMdiChild; //Указываем, что родительской формой является форма frmmain frm.MdiParent = this; //Вызываем диалог fontDialog1.ShowColor = true; //Связываем свойства SelectionFont и SelectionColor элемента RichTextBox //с соответствующими свойствами диалога fontDialog1.Font = frm.richTextBox1.SelectionFont; fontDialog1.Color = frm.richTextBox1.SelectionColor; //Если выбран диалог открытия файла, выполняем условие if (fontDialog1.ShowDialog() == DialogResult.OK) { frm.richTextBox1.SelectionFont = fontDialog1.Font; frm.richTextBox1.SelectionColor = fontDialog1.Color; } //Показываем форму frm.Show(); }



private void mnuColor_Click(object sender, System.EventArgs e) { blank frm = (blank)this.ActiveMdiChild; frm.MdiParent = this; colorDialog1.Color = frm.richTextBox1.SelectionColor;

if (colorDialog1.ShowDialog() == DialogResult.OK) { frm.richTextBox1.SelectionColor = colorDialog1.Color; }

frm.Show(); }

private void mnuFind_Click(object sender, System.EventArgs e) { // Создаем новый экземпляр формы FindForm FindForm frm = new FindForm(); //Если выбран результат DialogResult.Cancel, закрываем форму (до этого //мы использовали DialogResult.OK if(frm.ShowDialog(this) == DialogResult.Cancel) return; ////Переключаем фокус на данную форму. blank form = (blank)this.ActiveMdiChild; ////Указываем, что родительской формой является форма frmmain form.MdiParent = this; //Вводим переменную для поиска в определенной части текста — //поиск слова будет осуществляться от текущей позиции курсора int start = form.richTextBox1.SelectionStart; //Вызываем предопределенный метод Find элемента richTextBox1. form.richTextBox1.Find(frm.FindText, start, frm.FindCondition); }

private void mnuAbout_Click(object sender, System.EventArgs e) { //Создаем новый экземпляр формы About About frm = new About(); frm.Show(); }

private void toolBarMain_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { //New if (e.Button.Equals(tbNew)) { mnuNew_Click(this, new EventArgs()); } //Open if (e.Button.Equals(tbOpen)) { mnuOpen_Click(this, new EventArgs()); } //Save if (e.Button.Equals(tbSave)) { mnuSave_Click(this, new EventArgs()); } //Cut if (e.Button.Equals(tbCut)) { mnuCut_Click(this, new EventArgs()); } //Copy if (e.Button.Equals(tbCopy)) { mnuCopy_Click(this, new EventArgs()); } //Paste if (e.Button.Equals(tbPaste)) { mnuPaste_Click(this, new EventArgs()); } } } }

Листинг 2.19. Форма frmmain

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.IO;

namespace NotepadCSharp { /// <summary> /// Summary description for blank. /// </summary> public class blank : System.Windows.Forms.Form { public System.Windows.Forms.RichTextBox richTextBox1; public string DocName = ""; private string BufferText = ""; private System.Windows.Forms.ContextMenu contextMenu1; private System.Windows.Forms.MenuItem cmnuCut; private System.Windows.Forms.MenuItem cmnuCopy; private System.Windows.Forms.MenuItem cmnuPaste; private System.Windows.Forms.MenuItem cmnuDelete; private System.Windows.Forms.MenuItem menuItem6; private System.Windows.Forms.MenuItem cmnuSelectAll; public bool IsSaved = false; private System.Windows.Forms.StatusBar statusBar1; private System.Windows.Forms.StatusBarPanel sbAmount; private System.Windows.Forms.StatusBarPanel sbTime;



/// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null;

public blank() {

InitializeComponent(); // Свойству Text панели sbTime устанавливаем системное время, // конвертировав его в тип String sbTime.Text = Convert.ToString(System.DateTime.Now.ToLongTimeString()); //В тексте всплывающей подсказки выводим текущую дату sbTime.ToolTipText = Convert.ToString(System.DateTime.Today.ToLongDateString()); }

protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }

region Windows Form Designer generated code

// Вырезание текста public void Cut() { this.BufferText = richTextBox1.SelectedText; richTextBox1.SelectedText = ""; }

// Копирование текста public void Copy() { this.BufferText = richTextBox1.SelectedText; }

// Вставка public void Paste() { richTextBox1.SelectedText = this.BufferText; }

// Выделение всего текста — используем свойство SelectAll элемента управления RichTextBox public void SelectAll() { richTextBox1.SelectAll(); }

// Удаление. public void Delete() { richTextBox1.SelectedText = ""; this.BufferText = ""; } //Создаем метод Open, в качестве параметра объявляем строку адреса файла. public void Open(string OpenFileName) { //Если файл не выбран, возвращаемся назад (появится встроенное предупреждение) if (OpenFileName == "") { return; } else { //Создаем новый объект StreamReader и передаем ему переменную OpenFileName StreamReader sr = new StreamReader(OpenFileName); //Читаем весь файл и записываем его в richTextBox1 richTextBox1.Text = sr.ReadToEnd(); // Закрываем поток sr.Close(); //Переменной DocName присваиваем адресную строку. DocName = OpenFileName; } }

private void cmnuCut_Click(object sender, System.EventArgs e) { Cut(); }

private void cmnuCopy_Click(object sender, System.EventArgs e) { Copy(); }

private void cmnuPaste_Click(object sender, System.EventArgs e) { Paste(); }



private void cmnuDelete_Click(object sender, System.EventArgs e) { Delete(); }

private void cmnuSelectAll_Click(object sender, System.EventArgs e) { SelectAll(); } //Создаем метод Save, в качестве параметра объявляем строку адреса файла. public void Save(string SaveFileName) { //Если файл не выбран, возвращаемся назад (появится встроенное предупреждение) if (SaveFileName == "") { return; } else { //Создаем новый объект StreamWriter и передаем ему переменную OpenFileName StreamWriter sw = new StreamWriter(SaveFileName); //Содержимое richTextBox1 записываем в файл sw.WriteLine(richTextBox1.Text); //Закрываем поток sw.Close(); //Устанавливаем в качестве имени документа название сохраненного файла DocName = SaveFileName; } }

private void blank_Closing(object sender, System.ComponentModel.CancelEventArgs e) { //Если переменная IsSaved имеет значение true, т. е. документ новый документ //был сохранен (Save As) или в открытом документе были сохранены изменения (Save), то выполняется условие if(IsSaved ==true) //Появляется диалоговое окно, предлагающее сохранить документ. if (MessageBox.Show("Do you want save changes in " + this.DocName + "?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //Если была нажата кнопка Yes, вызываем метод Save { this.Save(this.DocName); }

}

private void richTextBox1_TextChanged(object sender, System.EventArgs e) { //Свойству Text панели sbAmount устанавливаем надпись "Аmount of symbols " //и длину текста в RichTextBox. sbAmount.Text = "Аmount of symbols " + richTextBox1.Text.Length.ToString(); } } }

Листинг 2.20. Форма blank
  1)

  Для создания иконки подходит даже редактор Paint. Для иконки панели инструментов размер рисунка должен быть 16х16 пикселей, сохраненный как 256-цветный рисунок. Для преобразования сохраненного рисунка, например, 1.bmp, просто смените его расширение на 1.ico.









© 2003-2007 INTUIT.ru. Все права защищены.

Содержание раздела