|
| |||
|
|
Простенький текстовый редактор типа Notepad на C# using System; using System.ComponentModel; using System.Drawing; using System.Resources; using System.Windows.Forms; namespace Editor { /// <summary> /// Мой редактор типа Блокнота /// </summary> public class Редактор : Form { /// <summary> /// Required designer variable. /// </summary> private Container components; private ColorDialog ДиалогВыбораЦвета; private FontDialog ДиалогВыборШрифта; private SaveFileDialog ДиалогСохранить; private OpenFileDialog ДиалогОткрытьФайл; private MainMenu ГлавноеМеню; private MenuItem ПунктМенюПереносСлов; private RichTextBox Текст; private string _filename = ""; private string filename { get { return _filename; } set { _filename = value; Text = value; } } public Редактор() { // // Required for Windows Form Designer support // InitializeComponent(); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { ResourceManager resources = new ResourceManager(typeof(Редактор)); components = new Container(); ДиалогВыборШрифта = new FontDialog(); Текст = new RichTextBox(); ДиалогОткрытьФайл = new OpenFileDialog(); MenuItem ПунктМенюФормат = new MenuItem(); MenuItem ПунктМенюПомощь = new MenuItem(); ГлавноеМеню = new MainMenu(); ДиалогВыбораЦвета = new ColorDialog(); ДиалогСохранить = new SaveFileDialog(); Текст.AutoWordSelection = true; Текст.Size = new Size(336, 312); Текст.TabIndex = 1; Текст.ScrollBars = RichTextBoxScrollBars.ForcedBoth; Текст.Font = new Font("Arial", 10, FontStyle.Bold); ДиалогОткрытьФайл.Filter = "Текстовый файл|*.txt"; ДиалогОткрытьФайл.ReadOnlyChecked = true; ДиалогОткрытьФайл.DefaultExt = "txt"; ДиалогОткрытьФайл.Multiselect = true; ПунктМенюПереносСлов = new MenuItem("Перенос по словам", new EventHandler(ПереносСлов)); ПунктМенюПомощь = new MenuItem( "Помощь", new MenuItem[] { new MenuItem("О программе", new EventHandler(ОПрограмме)) } ); ГлавноеМеню.MenuItems.AddRange( new MenuItem[]{ new MenuItem( "&Файл", new MenuItem[] { new MenuItem("Создать", new EventHandler(СоздатьНовыйФайл), Shortcut.CtrlN), new MenuItem("Открыть...", new EventHandler(ОткрытьФайл), Shortcut.CtrlO), new MenuItem("Сохранить", new EventHandler(СохранитьФайл), Shortcut.CtrlS), new MenuItem("Сохранить как...", new EventHandler(СохранитьКак)), new MenuItem("-"), new MenuItem("Выход", new EventHandler(ВыходИзПрограммы) ) } ), new MenuItem( "&Правка", new MenuItem[] { new MenuItem("Отменить", new EventHandler(Отменить), Shortcut.CtrlZ), new MenuItem("Вернуть", new EventHandler(Вернуть)), new MenuItem("-"), new MenuItem("Вырезать", new EventHandler(Вырезать), Shortcut.CtrlX), new MenuItem("&Копировать", new EventHandler(Копировать), Shortcut.CtrlC), new MenuItem("Вставить", new EventHandler(Вставить), Shortcut.CtrlV), new MenuItem("Удалить", new EventHandler(Удалить), Shortcut.Del), new MenuItem("-"), new MenuItem("Найти...", new EventHandler(Найти), Shortcut.CtrlF), new MenuItem("Найти далее", new EventHandler(НайтиДалее), Shortcut.F3), new MenuItem("Заменить...", new EventHandler(Заменить), Shortcut.CtrlH), new MenuItem("Перейти...", new EventHandler(Перейти), Shortcut.CtrlG), new MenuItem("-"), new MenuItem("В&ыделить все", new EventHandler(ВыделитьВсе), Shortcut.CtrlA), new MenuItem("Время и дата", new EventHandler(ВставкаВремениИДаты), Shortcut.F5) }), new MenuItem( "Формат", new MenuItem[] { ПунктМенюПереносСлов, new MenuItem("Шрифт", new EventHandler(ВыборШрифта) ), new MenuItem("Цвет", new EventHandler(ВыборЦвета) ) }), ПунктМенюПомощь }); ДиалогСохранить.Filter = "Текстовый файл|*.txt"; ДиалогСохранить.InitialDirectory = System.IO.Directory.GetCurrentDirectory(); // System.IO.Path.GetDirectoryName(""); ДиалогСохранить.DefaultExt = "txt"; ДиалогСохранить.FileName = "Untitled"; ДиалогСохранить.CheckFileExists = true; Text = "Мой редактор"; AutoScaleBaseSize = new Size(5, 13); Menu = ГлавноеМеню; ClientSize = new Size(344, 317); Resize += new EventHandler(rs); Controls.Add(Текст); } private void Перейти(object sender, EventArgs e) { throw new NotImplementedException(); } private void Заменить(object sender, EventArgs e) { throw new NotImplementedException(); } private void НайтиДалее(object sender, EventArgs e) { throw new NotImplementedException(); } private void Найти(object sender, EventArgs e) { throw new NotImplementedException(); } private void Удалить(object sender, EventArgs e) { if (Текст.SelectedText.Equals("")) return; Текст.SelectedText = ""; } protected void ОПрограмме(object sender, EventArgs e) { MessageBox.Show("Просто текстовый редактор, версия такая-то...", "О программе", MessageBoxButtons.OK, MessageBoxIcon.Information); } protected void ПереносСлов(object sender, EventArgs e) { ПунктМенюПереносСлов.Checked = !ПунктМенюПереносСлов.Checked; Текст.WordWrap = ПунктМенюПереносСлов.Checked; } protected void ВыборЦвета(object sender, EventArgs e) { ДиалогВыбораЦвета.ShowDialog(); Текст.SelectionColor = ДиалогВыбораЦвета.Color; } protected void ВыборШрифта(object sender, EventArgs e) { ДиалогВыборШрифта.ShowDialog(); Текст.SelectionFont = ДиалогВыборШрифта.Font; } protected void ВставкаВремениИДаты(object sender, EventArgs e) { Текст.SelectedText = DateTime.Now.ToString(); } protected void ВыделитьВсе(object sender, EventArgs e) { Текст.SelectAll(); } protected void Вставить(object sender, EventArgs e) { DataObject Data = (DataObject)Clipboard.GetDataObject(); Текст.SelectedText = (string)Data.GetData(DataFormats.Text); } protected void Копировать(object sender, EventArgs e) { if (Текст.SelectedText.Equals("")) return; Clipboard.SetDataObject(Текст.SelectedText, true); } protected void Вырезать(object sender, EventArgs e) { if (Текст.SelectedText.Equals("")) return; Clipboard.SetDataObject(Текст.SelectedText, true); Текст.SelectedText = ""; } protected void Вернуть(object sender, EventArgs e) { Текст.Redo(); } protected void Отменить(object sender, EventArgs e) { Текст.Undo(); } protected void СохранитьФайл(object sender, EventArgs e) { if (filename.Equals("")) { ДиалогСохранить.ShowDialog(); if (!ДиалогСохранить.FileName.Equals("")) { filename = ДиалогСохранить.FileName; } } Текст.SaveFile(filename, RichTextBoxStreamType.PlainText); Text = filename; } protected void СохранитьКак(object sender, EventArgs e) { ДиалогСохранить.ShowDialog(); if (!ДиалогСохранить.FileName.Equals("")) { filename = ДиалогСохранить.FileName; Текст.SaveFile(filename, RichTextBoxStreamType.PlainText); Text = filename; } } protected void СоздатьНовыйФайл(object sender, EventArgs e) { Текст.Clear(); } protected void ОткрытьФайл(object sender, EventArgs e) { ДиалогОткрытьФайл.ShowDialog(); filename = ДиалогОткрытьФайл.FileName; if (!filename.Equals("")) { Текст.LoadFile(filename, RichTextBoxStreamType.PlainText); Text = filename; } } protected void rs(object sender, EventArgs e) { Текст.Size = Size; } private void ВыходИзПрограммы(object sender, EventArgs e) { Close(); } [STAThreadAttribute] public static void Main(string[] args) { Application.Run(new Редактор()); } } } |
||||||||||||||