/
eup
/
notepad
Обзор
Документация
Войти
/
eup
/
notepad
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
MainForm.cs
171 строка
5 KB
eup
Create: MainForm.cs, NotepadTask2.csproj, NotepadTask2.sln, NotepadTask2.slnx, Program.cs, README.md, TESTING.md
07 июн 2026, 12:08
Верифицирован
07 июн 2026, 12:08
577d2f6
Код
Авторство
О чём код?
using System.Drawing; using System.IO; using System.Windows.Forms; namespace NotepadTask2; public sealed class MainForm : Form { private const string UntitledTitle = "Безымянный"; private readonly RichTextBox editor = new(); private readonly OpenFileDialog openFileDialog = new(); private readonly SaveFileDialog saveFileDialog = new(); private readonly FontDialog fontDialog = new(); private readonly ColorDialog colorDialog = new(); private string? currentFileName; public MainForm() { InitializeComponent(); UpdateTitle(); } private void InitializeComponent() { SuspendLayout(); var menuStrip = new MenuStrip(); var fileMenu = new ToolStripMenuItem("Файл"); var createMenuItem = new ToolStripMenuItem("Создать", null, CreateMenuItem_Click); var openMenuItem = new ToolStripMenuItem("Открыть", null, OpenMenuItem_Click); var saveMenuItem = new ToolStripMenuItem("Сохранить", null, SaveMenuItem_Click); var saveAsMenuItem = new ToolStripMenuItem("Сохранить как...", null, SaveAsMenuItem_Click); fileMenu.DropDownItems.AddRange(new ToolStripItem[] { createMenuItem, openMenuItem, saveMenuItem, saveAsMenuItem }); var formatMenu = new ToolStripMenuItem("Формат"); var fontMenuItem = new ToolStripMenuItem("Шрифт", null, FontMenuItem_Click); var backgroundColorMenuItem = new ToolStripMenuItem("Цвет фона", null, BackgroundColorMenuItem_Click); formatMenu.DropDownItems.AddRange(new ToolStripItem[] { fontMenuItem, backgroundColorMenuItem }); menuStrip.Items.AddRange(new ToolStripItem[] { fileMenu, formatMenu }); editor.AcceptsTab = true; editor.Dock = DockStyle.Fill; editor.Font = new Font("Segoe UI", 10F); editor.HideSelection = false; editor.ScrollBars = RichTextBoxScrollBars.Both; editor.WordWrap = false; openFileDialog.Filter = "Текстовые документы и C# файлы (*.txt;*.cs)|*.txt;*.cs|Текстовые документы (*.txt)|*.txt|Файлы C# (*.cs)|*.cs|Все файлы (*.*)|*.*"; openFileDialog.Title = "Открыть файл"; saveFileDialog.DefaultExt = "txt"; saveFileDialog.Filter = "Текстовые документы (*.txt)|*.txt|Все файлы (*.*)|*.*"; saveFileDialog.Title = "Сохранить файл"; saveFileDialog.AddExtension = true; AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); Controls.Add(editor); Controls.Add(menuStrip); MainMenuStrip = menuStrip; MinimumSize = new Size(320, 220); StartPosition = FormStartPosition.CenterScreen; ResumeLayout(false); PerformLayout(); } private void CreateMenuItem_Click(object? sender, EventArgs e) { editor.Clear(); currentFileName = null; UpdateTitle(); } private void OpenMenuItem_Click(object? sender, EventArgs e) { if (openFileDialog.ShowDialog(this) != DialogResult.OK) { return; } currentFileName = openFileDialog.FileName; editor.LoadFile(currentFileName, RichTextBoxStreamType.PlainText); UpdateTitle(); } private void SaveMenuItem_Click(object? sender, EventArgs e) { Save(); } private void SaveAsMenuItem_Click(object? sender, EventArgs e) { SaveAs(); } private void FontMenuItem_Click(object? sender, EventArgs e) { fontDialog.Font = editor.Font; if (fontDialog.ShowDialog(this) == DialogResult.OK) { editor.Font = fontDialog.Font; } } private void BackgroundColorMenuItem_Click(object? sender, EventArgs e) { colorDialog.Color = editor.BackColor; if (colorDialog.ShowDialog(this) == DialogResult.OK) { editor.BackColor = colorDialog.Color; } } private void Save() { if (string.IsNullOrWhiteSpace(currentFileName)) { SaveAs(); return; } editor.SaveFile(currentFileName, RichTextBoxStreamType.PlainText); UpdateTitle(); } private void SaveAs() { if (!string.IsNullOrWhiteSpace(currentFileName)) { saveFileDialog.InitialDirectory = Path.GetDirectoryName(currentFileName); saveFileDialog.FileName = Path.GetFileNameWithoutExtension(currentFileName); } else { saveFileDialog.FileName = string.Empty; } if (saveFileDialog.ShowDialog(this) != DialogResult.OK) { return; } currentFileName = saveFileDialog.FileName; editor.SaveFile(currentFileName, RichTextBoxStreamType.PlainText); UpdateTitle(); } private void UpdateTitle() { Text = string.IsNullOrWhiteSpace(currentFileName) ? UntitledTitle : Path.GetFileName(currentFileName); } }