0
我有一個小的Windows客戶端應用程序數據綁定到單個表後端。 我使用VS 2005中的嚮導創建了一個DataSet,並自動創建底層適配器和一個GridView。我也有一個RichText控件並將其綁定到此DataSet。目前爲止,但在RichTextbox中顯示數據之前,我需要隨時替換某些字符(〜)。這可以做到嗎?富文本框。 .NET 2.0內容格式化
我有一個小的Windows客戶端應用程序數據綁定到單個表後端。 我使用VS 2005中的嚮導創建了一個DataSet,並自動創建底層適配器和一個GridView。我也有一個RichText控件並將其綁定到此DataSet。目前爲止,但在RichTextbox中顯示數據之前,我需要隨時替換某些字符(〜)。這可以做到嗎?富文本框。 .NET 2.0內容格式化
Binding richTextBoxBinding = richTextBox.DataBindings.Add("Text", bindingSource, "TheTextColumnFromTheDatabase");
richTextBoxBinding.Format += richTextBoxBinding_Format;
richTextBoxBinding.Parse += richTextBoxBinding_Parse;
在Format
事件,內部值轉換爲格式化表示:
private void richTextBoxBinding_Format(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(string))
return; // this conversion only makes sense for strings
if (e.Value != null)
e.Value = e.Value.ToString().Replace("~", "whatever");
}
在Parse
情況下,格式化表示轉換到內部值:
private void richTextBoxBinding_Parse(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(string))
return; // this conversion only makes sense for strings (or maybe not, depending on your needs...)
if (e.Value != null)
e.Value = e.Value.ToString().Replace("whatever", "~");
}
注你只需要處理Parse
事件,如果你的綁定是雙向的(即用戶可以修改文本和chan ges被保存到數據庫)
Thomas,謝謝你的回答。我正在做同樣的事情,並且意外地在「richTextBox1_TextChanged」上發現了這個事件,並且在這個事件中,我添加了這行代碼「richTextBox1.Text = richTextBox1.Text.Replace(」〜「,」\ n「);」。並且還使控件只讀,以便用戶不能更改其中的文本並觸發TextEvent_Changes事件。 你認爲這種方法好嗎/好/壞? 再次感謝您的輸入。 Ranjit – Ranjit 2010-01-12 15:51:54
您不應該顯式更改Text屬性,因爲它會通過綁定更新數據源...格式和分析事件的設計正是爲了您想要做的 – 2010-01-12 16:55:59