使用RichTextBox顯示你需要顯示的訊息與資料。
今天介紹一下平常相對少用的RichTextBox,使用RichTextBox不僅可以達到我們所要的功能,還可以儲存/開啟檔案,對於訊息紀錄的管理也更加方便,最重要的是程式的寫法非常容易。
1.先定義相關的資訊分類與相對的顏色
private Color[] MsgTypeColor = { Color.Blue, Color.Green, Color.Black, Color.Orange, Color.Red };
public enum MsgType { System, User, Normal, Warning, Error };
2.再來編寫插入訊息文字的函式
private void AddText(MsgType msgtype, string msg)
{
richTextBox1.Invoke(new EventHandler(delegate
{
richTextBox1.SelectedText = string.Empty;
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold);
richTextBox1.SelectionColor = MsgTypeColor[(int)msgtype];
richTextBox1.AppendText(msg);
richTextBox1.ScrollToCaret();
}));
}
3.在需要的地方寫下呼叫函式
AddText(MsgType.Normal, textBox1.Text + "\n");
4.接下來是存檔與開檔
存檔
SaveFileDialog SFD = new SaveFileDialog();
richTextBox1.SaveFile(SFD.FileName.ToString(), RichTextBoxStreamType.PlainText);
開檔
OpenFileDialog OFD = new OpenFileDialog();
richTextBox1.LoadFile(OFD.FileName, RichTextBoxStreamType.PlainText);
PlainText是指純文字的檔案格式,是以副檔名為TXT儲存,所以且記:開檔與存檔必須要一至,否則會Error的唷。
另外補充,當同時擁有TextBox與RichTextBox同時存在,又想要把游標初始化在TextBox,請在Form的Shown事件底下加入
private void Form1_Shown(object sender, EventArgs e)
{
textBox1.Focus();
}
這樣才會在視窗顯示出來的時候,第一時間把游標Focus在TextBox,不然RichTextBox會綁架游標喔。