1.创建一个工程,命名为SimpleEditor
2.把生成的文件Form1.cs重命名为SimpleEditorForm
3.设置窗体属性:
Text:Shawn&CheneyEditor
Icon:选择一个自定义图标
4.给窗体添加一个菜单栏和一个richTextBox控件
设置richTextBox控件属性如下
属性
值
Name
TextBoxEdit
Text
Multiline
True
Dock
Fill
ScollBars
Both
AcceptsReturn
AcceptsTab
6.首先在SimpleEditorForm类中定义一个成员变量filename,用来接收文件
publicpartialclassSimpleEditorForm:Form{privatestringfilename="Untitled";
}
7.修改SimpleEditorForm构造函数,使其接收一个文件名参数
publicSimpleEditorForm(stringfilename){InitializeComponent();if(filename!=null){this.filename=filename;OpenFile();}
//如果接收到一个不为null的参数,就给前面定义的成员变量filename赋值
//然后调用OpenFile函数,这个函数接下来将会给出定义。}
8.修改Program.cs中的main函数,使得main()可以给SimpleEditorForm传递filename参数
staticvoidMain(string[]args){stringfilename=null;if(args.Length!=0)filename=args[0];Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newSimpleEditorForm(filename));}
//如果本程序执行时带有参数(即给定了文件名),则这里会把这个文件名传递给SimpleEditorForm
//否则,将传递一个空值
9.给出OpenFile()方法的实现,将OpenFile()作为SimpleEditorForm的成员函数
protectedvoidOpenFile(){try{TextBoxEdit.Clear();TextBoxEdit.Text=File.ReadAllText(filename);}catch(IOExceptionex){MessageBox.Show(ex.Message,"SimpleEditor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}
由于这里使用了File类,所以必须添加usingSystem.IO命名空间
privatevoidMenuItemNew_Click(objectsender,EventArgse){filename="Untitled";//新建的文件文件名应该是UntitledTextBoxEdit.Clear();//调用Clear()方法清空文本框}
现在,已经可以通过这个程序来打开文件了
要给应用程序添加命令行参数,可以通过下面的方法:
本例中输入F:\CSharpPro\my6thPro\SimpleEditor\SimpleEditor\SimpleEditorForm.cs
运行程序,可以看到文件已经被打开了
首先将工具箱中的OpenFileDialog空间拖动到编辑区底部灰色区域,然后设置其属性:
Name:dlgOpenFile
Filter:TextDocuments(*.txt)|*.txt|ShawnCheneyDocuments(*.shawney)|*.shawnney|AllFiles|*.*
FilterIndex:2
privatevoidMenuItemOpen_Click(objectsender,EventArgse){if(dlgOpenFile.ShowDialog()==DialogResult.OK){filename=dlgOpenFile.FileName;OpenFile();
}}
//如果点击了OK,则读取dlgOpenFile.FileName属性,获得文件名
//最后调用OpenFile()方法打开文件。
2.保存文件
与前面类似,拖动SaveFileDialog控件到编辑区底部灰色区域,设置其属性
Name:dlgSaveFile
Filter:TextDocuments(*.txt)|*.txt|ShawnCheneyDocuments(*.shawney)|*.shawnney
privatevoidMenuItemSaveAs_Click(objectsender,EventArgse){if(dlgSaveFile.ShowDialog()==DialogResult.OK){filename=dlgSaveFile.FileName;SaveFile();}}
//与前面类似,如果对话框返回OK值,则从dlgSaveFile.FileName获得文件名
//然后调用SaveFile()方法保存文件。
创建SaveFile()方法,由于保存的时候可能会产生很多问题,因此,放在try块内!
privatevoidSaveFile(){try{File.WriteAllText(filename,TextBoxEdit.Text);}catch(IOExceptionex){MessageBox.Show(ex.Message,"Shawn&CheneyEditor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}
privatevoidMenuItemSave_Click(objectsender,EventArgse){if(filename=="Untitled"){MenuItemSaveAs_Click(sender,e);
//否则就直接保存。}}
到此为止,一个具有新建打开保存功能的简单文本编辑器就做好了。