• 【转载】用C#编写一个简单的记事本


      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 
     11 
     12 namespace Notepad
     13 {
     14     public partial class frmNotepad : Form
     15     {   
     16         //***********************************************************************
     17         /*布尔变量b用于判断文件是新建的还是从磁盘打开的 true 表示从磁盘打开,false表示文件是新建的,默认值为false*/
     18         bool b = false;
     19         /*布尔变量s用于判断文件是否被保存 true 表示已经被保存,false表示未被保存,默认值为true*/
     20         bool s = true;
     21         //***********************************************************************
     22 
     23         public frmNotepad()
     24         {
     25             InitializeComponent();
     26             richTextBox1.Text = "";
     27         }
     28 
     29         //************************************************************************* 
     30         // 多格式文本框的TextChanged事件代码  
     31         //************************************************************************* 
     32         private void richTextBox1_TextChanged(object sender, EventArgs e)
     33         {
     34             //文本框被修改后,设置s为false,表示文件未保存
     35             s = false;
     36         }
     37 
     38 
     39         //************************************************************************* 
     40         // 【文件】菜单各菜单项的单击代码  
     41         //************************************************************************* 
     42         //************************************************************************* 
     43         // 【新建】菜单代码  
     44         //*************************************************************************
     45         private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
     46         {
     47             //判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
     48             if(b == true || richTextBox1.Text.Trim() != "")
     49             {
     50                 //若文件未保存
     51                 if(s == false)
     52                 {
     53                     string result;
     54                     result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
     55                     switch(result)
     56                     {
     57                         case"Yes":
     58                             //若文件是从磁盘打开的
     59                             if(b == true)
     60                             {
     61                                 //按文件打开的路径保存文件
     62                                 richTextBox1.SaveFile(sdlgNotepad.FileName);
     63                             }else if(sdlgNotepad.ShowDialog()==DialogResult.OK)
     64                             {
     65                                 richTextBox1.SaveFile(sdlgNotepad.FileName);
     66                             }
     67                             s = true;
     68                             richTextBox1.Text = "";
     69                             break;
     70                         case"No":
     71                             b = false;
     72                             richTextBox1.Text = "";
     73                             break;
     74                     }
     75                 }
     76             }
     77         }
     78 
     79         //************************************************************************* 
     80         // 【保存】菜单代码 
     81         //*************************************************************************
     82         private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
     83         {
     84             //若文件从磁盘打开并且修改了其中内容
     85             if(b == true && richTextBox1.Modified == true)
     86             {
     87                 richTextBox1.SaveFile(odlgNotepad.FileName);
     88                 s = true;
     89             }
     90             else if(b == false && richTextBox1.Text.Trim() != "" &&sdlgNotepad.ShowDialog() == DialogResult.OK)
     91             {
     92                 //保存文件
     93                 richTextBox1.SaveFile(sdlgNotepad.FileName);
     94                 s = true;
     95                 b = true;
     96                 odlgNotepad.FileName = sdlgNotepad.FileName;
     97             }
     98         }
     99 
    100         //************************************************************************* 
    101         // 【打开】菜单代码  
    102         //************************************************************************* 
    103         private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
    104         {
    105              //判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
    106             try
    107             {
    108                 if (b == true || richTextBox1.Text.Trim() != "")
    109                 {
    110                     if (s == false)
    111                     {
    112                         string result;
    113                         result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
    114                         switch (result)
    115                         {
    116                             case "Yes":
    117                                 //若文件是从磁盘打开的
    118                                 if (b == true)
    119                                 {
    120                                     //按文件打开的路径保存文件
    121                                     richTextBox1.SaveFile(sdlgNotepad.FileName);
    122                                 }
    123                                 else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
    124                                 {
    125                                     richTextBox1.SaveFile(sdlgNotepad.FileName);
    126                                 }
    127                                 s = true;
    128                                 richTextBox1.Text = "";
    129                                 break;
    130                             case "No":
    131                                 b = false;
    132                                 richTextBox1.Text = "";
    133                                 break;
    134                         }
    135                     }
    136                 }
    137                 odlgNotepad.RestoreDirectory = true;
    138                 if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
    139                 {
    140                     //打开文件
    141                     richTextBox1.LoadFile(odlgNotepad.FileName);
    142                     b = true;
    143                 }
    144                 s = true;
    145             }
    146             catch(Exception ex)
    147             {
    148                     
    149             }
    150 
    151         }
    152 
    153         //************************************************************************* 
    154         // 【另存为】菜单代码  
    155         //************************************************************************* 
    156         private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
    157         {
    158             if(sdlgNotepad.ShowDialog() == DialogResult.OK)
    159             {
    160                 richTextBox1.SaveFile(sdlgNotepad.FileName);
    161                 s = true;
    162             }
    163         }
    164 
    165         //************************************************************************* 
    166         // 【退出】菜单代码  
    167         //*************************************************************************
    168         private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
    169         {
    170             //结束程序运行
    171             Application.Exit();
    172         }
    173 
    174         //************************************************************************* 
    175         // 【编辑】菜单各菜单项的单击代码  
    176         //************************************************************************* 
    177         // 【撤销】菜单代码 
    178         private void 撤消UToolStripMenuItem_Click(object sender, EventArgs e)
    179         {
    180             //撤销操作
    181             richTextBox1.Undo();
    182         }
    183 
    184         // 【复制】菜单代码
    185         private void 复制CToolStripMenuItem_Click(object sender, EventArgs e)
    186         {
    187             //复制
    188             richTextBox1.Copy();
    189         }
    190 
    191         // 【剪切】菜单代码
    192         private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e)
    193         {
    194             //剪切
    195             richTextBox1.Cut();
    196         }
    197 
    198         // 【粘贴】菜单代码
    199         private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
    200         {
    201             //粘贴
    202             richTextBox1.Paste();
    203         }
    204 
    205         // 【全选】菜单代码
    206         private void 全选AToolStripMenuItem_Click(object sender, EventArgs e)
    207         {
    208             //全选
    209             richTextBox1.SelectAll();
    210         }
    211 
    212         //************************************************************************* 
    213         // 【格式】菜单代码  
    214         //************************************************************************* 
    215         private void 工具TToolStripMenuItem_Click(object sender, EventArgs e)
    216         {
    217 
    218         }
    219 
    220         // 【自动换行】菜单代码
    221         private void 自定义CToolStripMenuItem_Click(object sender, EventArgs e)
    222         {
    223             if(自定义CToolStripMenuItem.Checked == false)
    224             {
    225                 //选中自动换行
    226                 自定义CToolStripMenuItem.Checked = true;
    227                 //设置为自动换行
    228                 richTextBox1.WordWrap = true;
    229             }
    230             else
    231             {
    232                 //未选中自动换行
    233                 自定义CToolStripMenuItem.Checked = false;
    234                 //设置为不自动换行
    235                 richTextBox1.WordWrap = false;
    236             }
    237         }
    238 
    239         // 【字体】菜单代码
    240         private void 选项OToolStripMenuItem_Click(object sender, EventArgs e)
    241         {
    242             fdlgNotepad.ShowColor = true;
    243             if(fdlgNotepad.ShowDialog() == DialogResult.OK)
    244             {
    245                 richTextBox1.SelectionColor = fdlgNotepad.Color;
    246                 richTextBox1.SelectionFont = fdlgNotepad.Font;
    247             }
    248         }
    249 
    250         //************************************************************************* 
    251         // 【帮助】菜单代码  
    252         //*************************************************************************
    253         // 【关于】菜单代码
    254         private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)
    255         {
    256             MessageBox.Show("wky  编写", "关于"记事本"", MessageBoxButtons.OK);
    257         }
    258 
    259         //************************************************************************* 
    260         // 计时器控件的Tick事件代码  
    261         //*************************************************************************
    262         private void tmrNotepad_Tick(object sender, EventArgs e)
    263         {
    264             //获取系统当前时间,并显示在状态栏中
    265             tssLbl2.Text = System.DateTime.Now.ToString();
    266         }
    267 
    268         private void 粘贴PToolStripButton_Click(object sender, EventArgs e)
    269         {
    270             richTextBox1.Paste();
    271         }
    272 
    273         
    274 
    275     }
    276 }
  • 相关阅读:
    如何设计高性能架构
    如何做好架构设计
    面向复杂度架构设计
    怎么画架构图
    架构师前期的工作
    如何设计高可用架构
    如何设计可扩展的架构
    架构师的中期工作
    架构师的基本职责
    如何全面提升架构设计质量
  • 原文地址:https://www.cnblogs.com/yanglang/p/7727825.html
Copyright © 2020-2023  润新知