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




Пример 2.20


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

Закрыть окно




Содержание  Назад  Вперед