Basit Metin Editörü

 Örnek
Basit Metin Editörü
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp40
{
    public partial class Form1 : Form
    {

        bool DegisiklikVar = false;
        string KayitDosyasi = "";

        public Form1()
        {
            InitializeComponent();
        }

        private void yeniToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (KayitliMi())
            {
                richTextBox1.Clear();
                this.Text = "Not Defterim";
            }
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            DegisiklikVar = true;
        }

        public bool KayitliMi()
        {
            if (DegisiklikVar)
            {
                DialogResult Pencere = MessageBox.Show(
                "Dosyada değişiklikler var. Kaydetmek ister misiniz?",
                "Uyarı",
                MessageBoxButtons.YesNoCancel,
                MessageBoxIcon.Warning);

                if(Pencere == DialogResult.Yes)
                {
                    Kaydet();
                    return true;
                }
                return true;
            }
            else return true;
        }

        public void Kaydet()
        {
            if (KayitDosyasi != "")
            {
                richTextBox1.SaveFile(KayitDosyasi, RichTextBoxStreamType.RichText);
                DegisiklikVar = false;
            }
            else
            {
                YeniKayit();
            }
        }

        public void YeniKayit()
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "Rich Text Files (*.rtf)|*.rtf|All Files (*.*)|*.*";

            DialogResult cevap = sfd.ShowDialog();

            if (cevap == DialogResult.OK)
            {
                KayitDosyasi = sfd.FileName;
                
                richTextBox1.SaveFile(KayitDosyasi, RichTextBoxStreamType.RichText);

                this.Text = "Not Defterim - " + sfd.FileName;

                DegisiklikVar = false;
            }
        }

        private void acToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(KayitliMi())
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "Rich Text (*.rtf)|*.rtf|Tüm Dosyalar (*.*)|*.*";
                openFileDialog.Title = "Dosya Aç";

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    KayitDosyasi = openFileDialog.FileName;

                    string extension = Path.GetExtension(KayitDosyasi).ToLower();

                    if (extension == ".rtf")
                    {
                        richTextBox1.LoadFile(KayitDosyasi, RichTextBoxStreamType.RichText);
                    }
                    else
                    {
                        richTextBox1.Text = File.ReadAllText(KayitDosyasi);
                    }

                    this.Text = "Zengin Not Defteri - " + openFileDialog.FileName;
                    DegisiklikVar = false;
                }
            }
        }

        private void kaydetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Kaydet();
        }

        private void farklıKaydetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Kaydet();
        }

        private void çıkışToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void geriAlToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(richTextBox1.CanUndo) richTextBox1.Undo();
        }

        private void yenileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(richTextBox1.CanRedo) richTextBox1.Redo();
        }

        private void kesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(richTextBox1.SelectionLength > 0) richTextBox1.Cut();
        }

        private void kopyalaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(richTextBox1.SelectionLength>0) richTextBox1.Copy();
        }

        private void yapıştırToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Clipboard.ContainsText())
                richTextBox1.Paste();
        }

        private void düzenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = "";
        }

        private void tümünüSeçToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectAll();
        }

        private void sözcükKaydırToolStripMenuItem_Click(object sender, EventArgs e)
        {

            if (sözcükKaydırToolStripMenuItem.Checked)
            {
                richTextBox1.WordWrap = true;
                richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
            }
            else
            {
                richTextBox1.WordWrap = false;
                richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;
            }

           // richTextBox1.WordWrap = sözcükKaydırToolStripMenuItem.Checked ? true : false;   
        }

        private void Form1_Resize(object sender, EventArgs e)
        {

            richTextBox1.Width = this.Width;
            richTextBox1.Height = this.Height;
        }

        private void yazıTipiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FontDialog FD = new FontDialog();

            FD.Font = richTextBox1.Font;

            FD.ShowColor = true;
            FD.Color = richTextBox1.ForeColor;

            if (FD.ShowDialog() == DialogResult.OK)
            {

                if (richTextBox1.SelectionLength > 0)
                {
                    //seçilenin fontunu ve rengini değiştirme
                    richTextBox1.SelectionColor = FD.Color;
                    richTextBox1.SelectionFont = FD.Font;
                }
                /*else
                {
                    //tamamının fontunu ve rengini değiştirme
                    richTextBox1.Font = FD.Font;
                    richTextBox1.ForeColor = FD.Color;
                }*/
            }
        }

        private void zeminRengiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog RP = new ColorDialog();

            RP.Color = richTextBox1.BackColor;

            if (RP.ShowDialog() == DialogResult.OK)
            {
                

                // Eğer yazı seçiliyse sadece seçili metni değiştir
                if (richTextBox1.SelectionLength > 0)
                {
                    //seçilenin zemin rengini değiştirme
                    richTextBox1.SelectionBackColor = RP.Color;
                }
                else
                {
                    richTextBox1.BackColor = RP.Color;
                }
            }
        }
    }
}
 
Yükleniyor...
Yükleniyor...