C#记事本的制作

一、菜单命令的实现

textbox:
    属性:
        text:文本
        selectedtext:获取或设置选中文本
        canundo:是否能够撤销
    方法:
        undo:撤销
        clearundo:清空撤销缓冲区
        cut:剪切
        copy:复制
        Paste:粘贴
        SelectAll:全选
对话框:
    showdialog();显示对话框,返回一个dialogresult的枚举类型
   
    colorDialog:color属性,用来获取颜色
    folderBrowserDialog:SelectedPath选中路径
    fontDialog:font属性,返回一个font类型的值,里面存储了关于字体的设置
    openFileDialog:
        filename获取或设置文件路径包含文件名
        filenames 是文件路径字符串数组
        filter:文件筛选器 格式为 提示文本一|*.后缀|提示文本二|*.后缀|提示文本三|*.后缀
    saveFileDialog1:
        filename获取或设置文件路径包含文件名
        filenames 是文件路径字符串数组
        filter:文件筛选器 格式为 提示文本一|*.后缀|提示文本二|*.后缀|提示文本三|*.后缀

记事本的制作:

1.用MenuStrip制作好菜单栏;

2.将文本框设置MultiLine,将Dock设置为fill;

3.设置“编辑”菜单命令的事件;

4.设置“文件”菜单命令的事件;

注意:在设置需弹出窗口的命令时需提前将相应的窗口工具拖到设计窗体中,拖入后在窗体下部可以看到,下图所示:

image

各个菜单命令的触发事件  
private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (textBox1.CanUndo)
            {
                textBox1.Undo();
            }
        }

        private void 剪贴ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (textBox1.SelectedText != null)
            {
                textBox1.Cut();
            }
        }

        private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (textBox1.SelectedText != null)
            {
                textBox1.Copy();
            }
        }

        private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Paste();
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (textBox1.SelectedText != null)
            {
                textBox1.SelectedText = "";
            }
        }
//设置需弹出对话框的文件菜单命令的事件
        private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fontDialog1.ShowDialog();//显示字体对话框
            if (fontDialog1.Font != null)//若用户选定了一个字体,显示该字体的大小
            { MessageBox.Show(fontDialog1.Font.Size.ToString()); }
        }

        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
        }

        private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            saveFileDialog1.ShowDialog();
            if (saveFileDialog1.FileName != null)
            {
                MessageBox.Show(saveFileDialog1.FileName);
            }
        }
按“字体”命令以后
imageimage

二、通过文件流读写数据

需要的命名空间:using system.IO;

流:
    输入流:
         string filename = openFileDialog1.FileName;
               //通过读入流进行文件读取
               StreamReader sr = new StreamReader(filename);
               textBox1.Text = sr.ReadToEnd();
               sr.Close();
    输出流:
           string filename = saveFileDialog1.FileName;
                    //写入流,可以在硬盘上创建文件,并为文件写入信息
                    StreamWriter sw = new StreamWriter(filename);
                    sw.Write(this.textBox1.Text);
                    sw.Close();
    this:代表的它所在的那个类当前对象

输入流的练习:

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
            openFileDialog1.ShowDialog();
            if (openFileDialog1.FileName != null)//如果用户选择了一个文件,就读入该文件的文本
            {
                string openFileName = openFileDialog1.FileName;
                StreamReader sr = new StreamReader(openFileName);//将文件名作为参数,创建文件流对象
                textBox1.Text= sr.ReadToEnd();//将读取的文本输送到文本框中
                 sr.close();//要记得用完关闭文件流
            }
    
         
        }
 

在桌面上找到aaa.txt,点击打开,可以看到文本框有了文本

imageimage


打印:
    打印对话框:printdialog
    页面设置:pagesetupdialog
            这两个对话框都需要通过设置printdocument来指定打印对象
    printdocument:打印对象,必须要有,一块画板,用于打印机与打印内容之间中转,打印机打印的是printdoment
    printDocument1_PrintPage:事件,每打印一页之前触发,用于给printdocument指定打印内容
    通过画板把内容画到打印对象的页上:
        System.Drawing.Font f = new System.Drawing.Font("宋体",12);
            e.Graphics.DrawString(textBox1.Text,f,System.Drawing.Brushes.Aqua,5,5);
    最后打印: 打印对话框那,如果打印对话框返回确定打印,就执行printdocument.print();

小知识:ctrl+e+d自动对齐;
函数名后输入一个“(”或者光标在()里面按Ctrl+shift+空格,可以查看重载内容。

使用函数注意事项:要调用的内容是否确定存在;
在什么条件下需要调用;

原文地址:https://www.cnblogs.com/wllhq/p/4324801.html