VB6.0 RichTextBox與.Net RichTextBox的差別

在上次"將Console轉向到TextBox"之後,我又碰到了這樣一個問題
string s="aaaa" + (char)0 + "bbbb";
Console.Write(s);

這樣的話,在文本框中,由於有字符串終於標識"/0",顯示到"aaaa"就截止了,以後任何Console.write()都不會顯示了。我將這個字符串保存爲文本文件,用Notepad打開,沒問題,顯示成了"aaaa bbbb"。
於是我嘗試換用別用的控件,我換用了RichTextBox看它是否能顯示,結果與TextBox一樣。

碰巧要用VB6.0寫一個程序,於是想在VB中嘗試一下,
先用了TextBox
dim s="aaaa"+ chr(0) + "bbbb"
TextBox.text=s
效果與C#中相同,換用RichTextBox
RichTextBox.text=s
沒問題,顯示效果與Notepad中一樣。
看來問題有希望了,

打開Vs.net,打開Com控件,找到RichTextBox控件,導入,將ConsoleOut轉向新建的axRichtextBox控件,再次用上面的代碼,問題搞定了。於是加入自動滾屏代碼
axRichTextBox1.SetFocus();
axRichTextBox1.SelStart=axRichTextBox1.Text.Length;

但是不管RichTextBox中有多少文字,光標只能移動到 "aaaa"的後面,SelStart始終=4。
換下面的方法
axRichTextBox1.SetFocus();
SendKeys.Send("^{End}");

問題解決了。
但是還是存在一個疑問,是VB6.0與.Net中的RichTextBox實現方式不同還是它們對字符串的處理方式不同,希望指點。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章