Create Simple Notepad Application using C# in Visual Studio 2012

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Threading.Tasks;  
  9. using System.Windows.Forms;  
  10. using System.IO;  
  11. namespace notpad  
  12. {  
  13.     public partial class Notepad : Form  
  14.     {  
  15.         string pt = "";  
  16.         bool save_flag = false;  
  17.         int countss = 0;  
  18.         public Notepad()  
  19.         {  
  20.             InitializeComponent();  
  21.         }  
  22.   
  23.         private void fontToolStripMenuItem_Click(object sender, EventArgs e)  
  24.         {  
  25.   
  26.             if (fontDialog1.ShowDialog() == DialogResult.OK)  
  27.             {  
  28.                 if (richTextBox1.SelectedText != "")  
  29.                 {  
  30.                     richTextBox1.Font = fontDialog1.Font;  
  31.                 }  
  32.             }  
  33.         }  
  34.   
  35.         private void openToolStripMenuItem_Click(object sender, EventArgs e)  
  36.         {  
  37.             OpenFileDialog openFileDialog = new OpenFileDialog();  
  38.             openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);  
  39.             openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";  
  40.             if (openFileDialog.ShowDialog(this) == DialogResult.OK)  
  41.             {  
  42.                 string path = openFileDialog.FileName;  
  43.                 pt = path;  
  44.                 int pos = path.LastIndexOf("\\");  
  45.                 string ss = path.Substring(pos + 1);  
  46.                 this.Text = "Notepad - " + ss;  
  47.                 // Open the file to read from.   
  48.   
  49.                 using (StreamReader sr = File.OpenText(path))  
  50.                 {  
  51.                     string s = "";  
  52.                     while ((s = sr.ReadLine()) != null)  
  53.                     {  
  54.                         this.richTextBox1.AppendText(s + Environment.NewLine);  
  55.   
  56.                         countss = countss + s.Length + 1;  
  57.                     }  
  58.                 }  
  59.             }  
  60.         }  
  61.   
  62.         private void newToolStripMenuItem_Click(object sender, EventArgs e)  
  63.         {  
  64.             if (this.Text == "Notepad - Untitled")  
  65.             {  
  66.                 string s = from_close();  
  67.   
  68.                 this.richTextBox1.Clear();  
  69.             }  
  70.             //notpad.Notepad n = new Notepad();  
  71.             //n.Show();  
  72.   
  73.         }  
  74.   
  75.         private void printToolStripMenuItem_Click(object sender, EventArgs e)  
  76.         {  
  77.             printDialog1.ShowDialog();  
  78.         }  
  79.   
  80.         private void saveToolStripMenuItem_Click(object sender, EventArgs e)  
  81.         {  
  82.             string path = "";  
  83.             saveFileDialog1.DefaultExt = ".txt";  
  84.             saveFileDialog1.FileName = "*.txt";  
  85.             saveFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";  
  86.             if (saveFileDialog1.ShowDialog() == DialogResult.OK)  
  87.             {  
  88.                 path = saveFileDialog1.FileName;  
  89.                 pt = path;  
  90.                 if (!File.Exists(path)) //if file does not exits  
  91.                 {  
  92.                     // Create a file to write to.   
  93.                     using (StreamWriter sw = File.CreateText(path))  
  94.                     {  
  95.                         for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  96.                         {  
  97.                             sw.WriteLine(richTextBox1.Lines[i]);  
  98.                             countss = countss + richTextBox1.Lines[i].Length + 1;  
  99.                             save_flag = true;  
  100.                         }  
  101.   
  102.                     }  
  103.                     countss = countss - 1;  
  104.                 }  
  105.                 else if (File.Exists(path)) //if file is exist  
  106.                 {  
  107.                     using (StreamWriter sw = File.CreateText(path))  
  108.                     {  
  109.                         for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  110.                         {  
  111.                             sw.WriteLine(richTextBox1.Lines[i]);  
  112.                             countss = countss + richTextBox1.Lines[i].Length + 1;  
  113.                             save_flag = true;  
  114.                         }  
  115.   
  116.                     }  
  117.                 }  
  118.             }  
  119.             int pos = path.LastIndexOf("\\");  
  120.             string ss = path.Substring(pos + 1);  
  121.             this.Text = "Notepad - " + ss;  
  122.   
  123.         }  
  124.   
  125.         private void undoToolStripMenuItem_Click(object sender, EventArgs e)  
  126.         {  
  127.             richTextBox1.Undo();  
  128.   
  129.         }  
  130.   
  131.         private void cutToolStripMenuItem_Click(object sender, EventArgs e)  
  132.         {  
  133.             richTextBox1.Cut();  
  134.             change_Pest();  
  135.         }  
  136.   
  137.         private void copyToolStripMenuItem_Click(object sender, EventArgs e)  
  138.         {  
  139.             richTextBox1.Copy();  
  140.             change_Pest();  
  141.         }  
  142.   
  143.         private void pestToolStripMenuItem_Click(object sender, EventArgs e)  
  144.         {  
  145.             richTextBox1.Paste();  
  146.         }  
  147.   
  148.         private void deleteToolStripMenuItem_Click(object sender, EventArgs e)  
  149.         {  
  150.             richTextBox1.Cut();  
  151.             change_Pest();  
  152.         }  
  153.   
  154.         private void findToolStripMenuItem_Click(object sender, EventArgs e)  
  155.         {  
  156.   
  157.   
  158.         }  
  159.   
  160.         private void replaceToolStripMenuItem_Click(object sender, EventArgs e)  
  161.         {  
  162.             richTextBox1.FindForm();  
  163.         }  
  164.   
  165.         private void printSetupToolStripMenuItem_Click(object sender, EventArgs e)  
  166.         {  
  167.   
  168.         }  
  169.   
  170.         private void exitToolStripMenuItem_Click(object sender, EventArgs e)  
  171.         {  
  172.             // from_close();  
  173.             this.Close();  
  174.         }  
  175.   
  176.         private void editToolStripMenuItem_Click(object sender, EventArgs e)  
  177.         {  
  178.   
  179.         }  
  180.   
  181.         private void richTextBox1_TextChanged(object sender, EventArgs e)  
  182.         {  
  183.   
  184.   
  185.             findToolStripMenuItem.Enabled = true;  
  186.             findnextToolStripMenuItem.Enabled = true;  
  187.             replaceToolStripMenuItem.Enabled = true;  
  188.             undoToolStripMenuItem.Enabled = true;  
  189.             cutToolStripMenuItem.Enabled = false;  
  190.             copyToolStripMenuItem.Enabled = false;  
  191.             deleteToolStripMenuItem.Enabled = false;  
  192.             //MessageBox.Show("text selected");  
  193.   
  194.         }  
  195.   
  196.         private void richTextBox1_MouseCaptureChanged(object sender, EventArgs e)  
  197.         {  
  198.             cutToolStripMenuItem.Enabled = true;  
  199.             copyToolStripMenuItem.Enabled = true;  
  200.             deleteToolStripMenuItem.Enabled = true;  
  201.         }  
  202.   
  203.         private void change_Pest()  
  204.         {  
  205.             cutToolStripMenuItem.Enabled = false;  
  206.             copyToolStripMenuItem.Enabled = false;  
  207.             deleteToolStripMenuItem.Enabled = false;  
  208.             pestToolStripMenuItem.Enabled = true;  
  209.         }  
  210.         private void Notepad_FormClosing(object sender, FormClosingEventArgs e)  
  211.         {  
  212.             from_close();  
  213.         }  
  214.   
  215.         private void dateTimeToolStripMenuItem_Click(object sender, EventArgs e)  
  216.         {  
  217.             richTextBox1.AppendText(DateTime.Now.ToShortDateString().ToString() + " " + DateTime.Now.ToShortTimeString().ToString());  
  218.         }  
  219.   
  220.         private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)  
  221.         {  
  222.   
  223.         }  
  224.   
  225.         private void Notepad_Load(object sender, EventArgs e)  
  226.         {  
  227.             this.Text = "Notepad -" + " Untitled";  
  228.             this.richTextBox1.Clear();  
  229.         }  
  230.   
  231.         private void viewToolStripMenuItem_Click(object sender, EventArgs e)  
  232.         {  
  233.   
  234.         }  
  235.         private string from_close()  
  236.         {  
  237.             string rtn_string = "";  
  238.             if (richTextBox1.Modified == true)  
  239.             {  
  240.                 if (this.Text == "Notepad - Untitled")  
  241.                 {  
  242.                     DialogResult dr = MessageBox.Show("Do you want to save changes to Untitled ?""Notepad", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);  
  243.                     if (dr == DialogResult.Yes)  
  244.                     {  
  245.                         saveFileDialog1.DefaultExt = ".txt";  
  246.                         saveFileDialog1.FileName = "*.txt";  
  247.                         saveFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";  
  248.                         if (saveFileDialog1.ShowDialog() == DialogResult.OK)  
  249.                         {  
  250.                             string path = rtn_string = saveFileDialog1.FileName;  
  251.                             if (!File.Exists(path)) //if file does not exits  
  252.                             {  
  253.                                 // Create a file to write to.   
  254.                                 using (StreamWriter sw = File.CreateText(path))  
  255.                                 {  
  256.                                     for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  257.                                     {  
  258.                                         sw.WriteLine(richTextBox1.Lines[i]);  
  259.                                     }  
  260.   
  261.                                 }  
  262.                             }  
  263.                             else if (File.Exists(path)) //if file is exist  
  264.                             {  
  265.                                 using (StreamWriter sw = File.CreateText(path))  
  266.                                 {  
  267.                                     for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  268.                                     {  
  269.                                         sw.WriteLine(richTextBox1.Lines[i]);  
  270.                                     }  
  271.   
  272.                                 }  
  273.                             }  
  274.   
  275.                         }  
  276.   
  277.                     }  
  278.   
  279.                 }  
  280.                 else //if text file is existing  
  281.                 {  
  282.                     // MessageBox.Show(richTextBox1.Text.Length+" "+countss);  
  283.                     if (richTextBox1.Text.Length != countss || save_flag == false)  
  284.                     {  
  285.                         MessageBox.Show("Do you want to save changes to " + pt + " ?""Notpad", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);  
  286.                         using (StreamWriter sw = File.CreateText(pt))  
  287.                         {  
  288.                             for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  289.                             {  
  290.                                 sw.WriteLine(richTextBox1.Lines[i]);  
  291.                             }  
  292.   
  293.                         }  
  294.                     }  
  295.                 }  
  296.             }  
  297.             return rtn_string;  
  298.         }  
  299.   
  300.         private void aboutNotepadToolStripMenuItem_Click(object sender, EventArgs e)  
  301.         {  
  302.             Form2 f = new Form2();  
  303.             f.ShowDialog();  
  304.         }  
  305.   
  306.         private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)  
  307.         {  
  308.             saveFileDialog1.DefaultExt = ".txt";  
  309.             saveFileDialog1.FileName = "*.txt";  
  310.             saveFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";  
  311.             if (saveFileDialog1.ShowDialog() == DialogResult.OK)  
  312.             {  
  313.                 string path = saveFileDialog1.FileName;  
  314.                 if (!File.Exists(path)) //if file does not exits  
  315.                 {  
  316.                     // Create a file to write to.   
  317.                     using (StreamWriter sw = File.CreateText(path))  
  318.                     {  
  319.                         for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  320.                         {  
  321.                             sw.WriteLine(richTextBox1.Lines[i]);  
  322.                         }  
  323.   
  324.                     }  
  325.                 }  
  326.                 else if (File.Exists(path)) //if file is exist  
  327.                 {  
  328.                     using (StreamWriter sw = File.CreateText(path))  
  329.                     {  
  330.                         for (int i = 0; i < richTextBox1.Lines.Length; i++)  
  331.                         {  
  332.                             sw.WriteLine(richTextBox1.Lines[i]);  
  333.                         }  
  334.   
  335.                     }  
  336.                 }  
  337.   
  338.             }  
  339.         }  
  340.   
  341.         private void wordWrapToolStripMenuItem_Click(object sender, EventArgs e)  
  342.         {  
  343.   
  344.         }  
  345.   
  346.         private void viewHelpToolStripMenuItem_Click(object sender, EventArgs e)  
  347.         {  
  348.             Form2 f = new Form2();  
  349.             f.ShowDialog();  
  350.         }  
  351.   
  352.         private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)  
  353.         {  
  354.             richTextBox1.SelectAll();  
  355.         }  
  356.   
  357.     }  
  358. }