有了几个想法,想写一个多功能的记事本,这个记事本的功能有,window普通记事本所具有的功能,比如文件操作:文件打开,另存为,关闭等,编辑操作:复制,粘贴,剪切等。

然后我想增加的功能是,可以在一个程序里面打开多个文本文档,格式方面有字数统计,字体设置,颜色设置,显示行号,快捷键设置等,视图功能有水平,层叠来显示多个文本文档。另外,我还想把这个程序做成一个CSharpEditor.可以打开cs文件,并能够高亮显示,格式化代码。希望还能实现在程序中,运行简单的c#文件,用一个输出框得出结果。等等的一些功能。

有想法就要去做。今天晚上开始,在vs创建了一个winform程序,做了一下界面,用tab选项卡和richBox结合,来做成多文档打开,在主窗体有序显示的效果。本来的想法是用MDI父子窗体,但还是不行。就姑且这样先试试。

做了新建,打开文件,保存文件三个简单的功能。

新建文件,就是加一个tabPage并在其中添加一个richbox文本框,

打开文件,就是从openfiledialog中选择一个文件,然后通过新增一个tabPage和一个richbox,并往richbox中载入那个文件的文本。当然,首先要判断一下,那个文件是否已经在程序中打开。而且注意乱码的发生。

  richbox.LoadFile(openfiledialog.FileName,RichTextBoxStreamType.PlainText);

要保证,激活的文档窗口保持在当前新建或者打开的窗口

保存文件,首先要判断这个文件是否已经有在磁盘中保存过了。如果有保存过,那就是再保存一下,不用打开保存对话框savefiledialog进行命名保存。如果没有保存过,那就打开保存对话框,进行命名保存,当然首先要判断是否重名了。保存文件,richBox.saveFile(savefiledialog.FileName, RichTextBoxStreamType.PlainText);

这是添加一个新的文档窗口,在tabControl上添加一个tabpage

          TabPage tab1 = new TabPage("file1");
            RichTextBox rich = new RichTextBox();
            rich.Dock = DockStyle.Fill;
            tab1.Controls.Add(rich);
            rtbList.Add(rich);
            tabTxt.Controls.Add(tab1);
            tabTxt.SelectedTab = tab1;
            tabTxt.SelectedTab = tab1;

发现很久没写,有一些知识点,像一些常用控件的常用方法属性都忘了。准备这个写得差不多了,再选几个小项目,进行练练手,扩展一下功能。比如俄罗斯,贪吃蛇,音乐播放器,闹钟,万年历等等。

今天还看了一些WPF,觉得是比winform更容易做出一个漂亮的界面,在外观上有更多的灵活性。可以再看看咯。