Kolejnym przykładowym programem, który napiszemy, będzie prosty edytor tekstu. W naszym edytorze wykorzystamy wiele poznanych dotychczas komponentów. Przedstawiony zostanie także przykład drukowania oraz podglądu wydruku. Utwórz nowy projekt Aplikacja Windows Forms i nadaj mu nazwę notatnik.
- Na formatce umieść następujące komponenty: TextEdit, menuStrip, statusStrip, openFileDialog, saveFileDialog, fontDialog, printDialog, printDocument, printPreviewDialog.
- Korzystając z poprzednich lekcji, zaprogramuj notatnik wykorzystując jako pomoc zamieszczony kod źródowy.
Kod źródłowy:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Drawing.Printing; namespace notatnik { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void nowyToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Clear(); } private void zakońToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } private void otwórzToolStripMenuItem_Click(object sender, EventArgs e) { string nazwaPliku; openFileDialog1.Filter = "Dokument tekstowy|*.txt|Wszystkie pliki (*.*)|*.*"; openFileDialog1.ShowDialog(); if (File.Exists(openFileDialog1.FileName)) { nazwaPliku = openFileDialog1.FileName; StreamReader czytaj = new StreamReader(nazwaPliku); textBox1.Text = czytaj.ReadToEnd(); czytaj.Close(); this.Text = nazwaPliku; } } private void zapiszJakoToolStripMenuItem_Click(object sender, EventArgs e) { ZapiszJako(); } private void ZapiszJako() { saveFileDialog1.Filter = "Dokument tekstowy|*.txt|Wszystkie pliki (*.*)|*.*"; DialogResult _saveFileDialog = saveFileDialog1.ShowDialog(); if (_saveFileDialog == DialogResult.OK) { string nazwaPliku = saveFileDialog1.FileName; StreamWriter zapisz = new StreamWriter(nazwaPliku); zapisz.Write(textBox1.Text); zapisz.Close(); this.Text = nazwaPliku; toolStripStatusLabel1.Text = ""; } } private void wytnijToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Cut(); } private void kopijToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Copy(); } private void wklejToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Paste(); } private void czcionkaToolStripMenuItem_Click(object sender, EventArgs e) { FontDialog _fontDialog1 = new FontDialog(); _fontDialog1.ShowColor = true; if (_fontDialog1.ShowDialog() != DialogResult.Cancel) { textBox1.Font = _fontDialog1.Font; textBox1.ForeColor = _fontDialog1.Color; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("Czy przed zamknięciem okna chcesz dokonać zmian?nn Naciśnij 'Tak' aby zachować n Naciśnij 'Nie' aby nie wprowadzać zmian n Naciśnij 'Anuluj' aby anulować.", "Wybierz opcję", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3); if (result == DialogResult.Yes) { ZapiszJako(); } else if (result == DialogResult.No) { //Nie wychodź z programu } else { e.Cancel = true; } } private void textBox1_TextChanged(object sender, EventArgs e) { toolStripStatusLabel1.Text = "Zmodyfikowane"; } private void drukujToolStripMenuItem_Click(object sender, EventArgs e) { if (printDialog1.ShowDialog() == DialogResult.OK) { printDocument1.Print(); } } private void ToolStripMenuItem_Click(object sender, EventArgs e) { printPreviewDialog1.ShowDialog(); } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { Graphics _g = e.Graphics; _g.DrawString(textBox1.Text, new Font("Arial", 10), new SolidBrush(Color.Black), 40, 40); } private void Form1_Load(object sender, EventArgs e) { } } }
Total Page Visits: 1327 - Today Page Visits: 1