首页 > 代码库 > 关于C#做个小笔记

关于C#做个小笔记

RichTextBox控件很强大,不用滚动条就能上下移动看文本。

但是编程中它在winform和WPF里,略有不同。

但是一般的TextBox这个控件在两者里面,我暂时没看到区别,都能用textbox1.Clear()清除文本框。

下面是RichTextBox在winform和WPF里有哪些不同。

——————————————————————————————————————————

分割线

1、RichTextBox控件对象 如何追加文本 并换行

在winform中,向RichTextBox控件的对象aa里添加文本。

string str="123456";

可以用aa.apptendtext(str)追加文本,也可以在str后直接+"\n"来实现换行。比如str="123456"+"\n"

这样重复调用aa.apptendtext(str);就会如下显示

123456

123456

123456

..

但是在WPF里,RichTextBox空间虽然依然存在,但这招不太管用,那么我们用aa.AppendText(Environment.NewLine);来换行,不过总觉得这样换行后,怪怪的,总感觉多了一个空行。。。

——————————————————————————————————————————

分割线

2、RichTextBox空间对象 如何清除文本

在winform中,直接aa.Clear();即可

但是在WPF这招依然不管用,因为WPF里RichTextBox的对象根本没有Clear()这个方法。于是,可以用aa.Document.Blocks.Clear()来清除。

——————————————————————————————————————————

分割线

3、winform和WPF好多东西通用,我写的联系人管理程序,先用winform写的,后来直接把代码复制到WPF里,除了以上两点需要注意,其他的没做改动,直接运行了。

——————————————————————————————————————————

分割线

4、关于ReadLine()读取txt乱码问题

FileStream readfilename = new FileStream("record.txt", FileMode.Open);

StreamReader sr = new StreamReader(readfilename);

然后通过sr.ReadLine()来读取一行,这样有时会出乱码。

原因是txt默认是ANSI编码,你手动建立txt文档,基本都是ANSI编码。

而在C#程序里,汉字默认是Unicode编码的字符串,你按照ANSI来建立,程序按照Unicode来读取,这编码不兼容必须乱码。

如果你让程序自己建立txt,然后写入汉字,再让程序用ReadLine()读取,就不会有问题,因为程序默认建立Unicode编码的txt文档。

所以如果你要手动建立文档,然后用程序来读的话,必须把txt保存为Unicode编码的。否则必须乱码。


本文出自 “Xmirage” 博客,请务必保留此出处http://mirage1993.blog.51cto.com/2709744/1436017