日期:2014-05-20  浏览次数:21478 次

c#制作记事本感悟(一)
张老吩咐用c#来做记事本,感觉到c#在做用户界面方面的强大,于是决定自己来也来小试牛刀,之前制作计算器算是开始吧,这次,也用了更多的精力来制作记事本。


  整个记事本的代码编写时间并不长,但是大部分时间都花在了修改和测试,测试再修改的过程中。先不说这些了,我们一起来看看记事本的庐山真面目吧。

  整个记事本,其实最主要的操作就在文件的管理和文本的管理。


  我们先来讲讲,文件的管理吧
文件的管理就是文件的新建,打开,保存,另存为以及退出方法。在这里不得不再次感慨c#在用户操作界面功能的强大,所有部件和事件全部都可以拖拽,事件点击即可形成,完全不需要编写初始化代码,完全的自动生成,唯一要写的就是事件的处理,整个减轻了我们很多的负担,记得自己在学习java的awt包的时候就有写记事本的冲动,但是碍于java复杂的初始化步骤,以及复杂的继承和接口的实现等,再加上对组件和其属性的不熟悉,只好放弃。使用c#的话,唯一的不足仅仅只剩下了最后两项,可以说已经前进了一大步了。日后如果有机会,大家学习java的awt和swing包的时候,再回头来看c#对用户界面也就是GUI的处理,大家会印象更加的深刻的。感慨就到这里吧,进入正题。


  在这里,要用到几种对话框组建,openfiledialog,savefiledialog这两个对话框,这两个控件的属性我这里就不详细介绍了,以及上述几个按键事件的实现也是很简单的,我就不多说了,题外话,输入输出流也就是张老时常说的I/O,其实并不是什么神秘的东西,也不复杂,所以,感兴趣的同学完全可以去看看,掌握基本的应该不难。这里我想多说的是两个地方,一是新建,打开,保存,另存为之间的逻辑关系,也就是我们添加的判断条件,希望大家能够清晰。1.如果文章未保存,在新建,打开文件的时候要提示保存,2.文章第一次保存后,在第二次保存时不再弹出保存窗口,而是直接保存。3。打开一个文本,如果没做任何改动,就不能有任何保存提示。相反,只要有一点改动,在新建和打开,以及关闭时一定会有提示,这就需要用一个方法来判断文本是否有改动。二是记事本关闭时候的小发现,昨天在修改程序时,因为在exit_click事件里写了代码,又在Formclosing事件里写了代码,造成在点击退出时会弹出两次询问是否保存的消息框,我是这样分析的,单击退出事件,其实就是关闭窗口,无形中激发了一个formclosing事件,所以会造成两次的相同代码的执行,当时我为了证明我的假设是成立的,就只在exit_click事件里中写了application。exit();结果同样的弹出了判断是否保存的消息框,但这次只有一次,说明假设的正确,同时也解决了这个问题。另外,就是消息框的取消选项,当单击取消时,在记事本中是不执行任何操作,比如formclosing事件,如果单击cancel就应该没有变化,为了达到这个效果我们必须把事件源e.cancel这个属性改为TRUE


  这是文件的管理部分,这里也感谢本班的技术顾问猪哥的大力支持,很多点子都是他提供的。那么明天继续写对文本的操作部分的详细介绍,各位晚安。




------解决方案--------------------
张老是谁?
太长了
学习

------解决方案--------------------
源码何处?
------解决方案--------------------
请问有“源码”吗?
------解决方案--------------------
顶个,刚写过记事本。。
------解决方案--------------------
刚学编程那会 用vb写过记事本
------解决方案--------------------
学习
------解决方案--------------------
探讨
刚学编程那会 用vb写过记事本

------解决方案--------------------
源码我要>.
------解决方案--------------------
请给个源码参考下!
------解决方案--------------------
纯语法+控件的练习。
------解决方案--------------------
来的实际的!
------解决方案--------------------
果然是感悟,没东西,交流什么??
------解决方案--------------------
探讨
纯语法+控件的练习。

------解决方案--------------------
支持楼上的。
同样是记事本,用控件做出来的,和直接用winapi做出来的,就是不一样
------解决方案--------------------
学习,学习,也想做一个
------解决方案--------------------
顶哦
------解决方案--------------------
学习
------解决方案--------------------
写个记事本不是很难的
------解决方案--------------------
楼主继续啊!
------解决方案--------------------
你选对了,C#就是拿来作些小软件的
------解决方案--------------------
源代码有吗?/给我发下,谢谢!邮箱hubingli_love@163.com
------解决方案--------------------