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

rwqw0loc  于 8个月前  发布在  其他
关注(0)|答案(4)|浏览(93)

是否可以在多行文本框中有不同颜色的行?
我添加数据到文本框,我想澄清为用户不同类型的文本的颜色。
如何做到这一点,如果可能的话?

lh80um4z

lh80um4z1#

如果使用RichTextBox控件,则可以执行此操作。请参阅文档here(特别是查看备注和示例部分)。标准文本框不提供此功能。

6ie5vjzr

6ie5vjzr2#

标准的Winforms文本框没有这种功能(添加它会很麻烦)。
您可以考虑使用System.Windows.Forms.RichTextBox作为此功能的替代品,或者使用许多商业替代品之一。

neekobn8

neekobn83#

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

lstz6jyr

lstz6jyr4#

我找到了一种不使用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。但是在我的应用程序中,我需要它。然而,像这样它可以生成多色文本.和一个额外的免费。文本的每个部分都可以包含一个工具提示

相关问题