富文本框。 .NET 2.0内容格式

时间:2010-01-11 22:36:11

标签: .net richtextbox

我有一个绑定到单个表后端的小型Windows客户端应用程序数据。 我在VS 2005中使用向导创建了一个DataSet,它自动创建底层适配器和GridView。我还有一个RichText控件并将其绑定到此DataSet。到目前为止一切都好,但是我需要在RichTextbox中显示数据之前动态替换某些字符(〜)。可以这样做。

1 个答案:

答案 0 :(得分:0)

您需要处理绑定的FormatParse事件。

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事件(即用户可以修改文本并将更改保存到数据库中)