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编码的。否则必须乱码。
――――――――――――――――――――――――――――――――――――――――――
分割线
5、怎么安装sql server 2008 express
首先在百度搜索这玩意儿,第一个链接就是微软官网下载。
下下来,我一双击就提示兼容问题。不管它,继续运行。
然后解压完了就提示需要安装framework 3.5 sp1,我下了个2.5M的sp1补丁,双击后提示我去“打开或关闭windows功能”里面更改。我打开一看,还真有个 framework3.5.1,勾上点确定。
过一会就更改好了。
然后再次安装sql,成功了。
――――――――――――――――――――――――――――――――――――――――――
分割线
6、关于VS2010连接SQL sever express 2008出错
装好了SQL sever express 2008,然后在VS2010里尝试建立“基于服务的数据库”,报错如下。
提示“与SQL Server数据库文件(.mdf)的连接要求在本地计算机上安装并运行SQL Server2005 Express 或 SQL Server 2008 Express”
解决方法:
前提是你装好了SQL sever express 2008,并且已经启动了服务。
打开你的“SQL sever 配置管理器”,
看到红线部分,那个括号里就是你安装SQL时的实例名(SQLEXPRESS2008是我的实例名,你的可能不同)。把这个实例名填到VS里。
具体步骤:VS2010里面的“工具”--“选项”--“数据库工具”--“数据连接”,如图填入
“确定”。
好了,你再次在项目上右击“新建项”---建立“基于服务的数据库”,就不会有问题了。
――――――――――――――――――――――――――――――――――――――――――
分割线
7、怎么保证SQL数据库的主键值唯一性
在用C#操纵数据库时,我设置的主键值为ID字段,总是报错主键值重复。
那么防止主键值重复,在C#里可以用Guid id=Guid.NewsGuid();不过把这个id变量存入数据库会提示类型错误。无限目前没弄明白。
另一种解决方案,是直接在SQL语句里使用newid(),
前提:DQL主键值类型设为uniqueidentifier
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO tab00 VALUES(newid(),'张三','女','30')";
cmd.ExecuteNonQuery();
因为数据库命令类可以直接操纵SQL命令,所以在SQL语句直接写newid()更方便。自动生成了直接就放进去了。