多行文本框中是否可以有不同颜色的行?

9

在多行文本框中,是否可能有不同颜色的行呢?

我正在向文本框添加数据,并且希望通过颜色来区分不同类型的文本,以便让用户更加清晰明了。

如果可以的话,怎样实现呢?


你正在使用哪个UI框架(Winforms,WPF,Web)? - M.Babcock
@M.Babcock,啊!我忘记添加标签了,这是WinForms。 - HelpNeeder
4个回答

10
如果您使用 RichTextBox 控件,则可以实现此操作。请参阅文档 此处(特别是注意“备注”和“示例”部分)。标准的 TextBox 不提供此功能。

3
标准的Winforms文本框不具备此功能(添加此功能会很麻烦)。
您可以考虑使用System.Windows.Forms.RichTextBox 作为替代方案,或者选择商业替代品之一。

1
因此,根据您想要的输出方式,有一个浏览器/HTML控件(基本上是一个框),您可以传递URL或HTML字符串,具体取决于您正在做什么,您可能希望使用RickTextBox - 它具有格式化命令 - 您可以使用正则表达式或文本的偏移量,然后在文本框上使用“设置颜色”命令以及IF结构。

1
我找到了一种不使用RichTextBox的方法。
        WrapPanel panel = new WrapPanel();
        foreach (....)
        {

            TextBlock tb = new TextBlock();
            if(.....)
                tb.Foreground = Brushes.Red;
            else
            {
                tb.Foreground = Brushes.LemonChiffon;
            panel.Children.Add(tb);
         }

最后
                stackPanel.Children.Add(panel);
                
            }
            scrollViewer.Content = stackPanel;
            scrollViewer.CanContentScroll = true;
            window.Content = scrollViewer;
            window.Show();

没有必要使用ScrollViewer。但是在我的应用中我需要它。 然而,这样可以生成多彩的文字...而且还有额外的好处。文本的每个部分都可以轻松获得工具提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接