【问题标题】:Indentation in a C# RTBC# RTB 中的缩进
【发布时间】:2013-02-28 11:32:31
【问题描述】:

在我的 C# 应用程序中,我有一个带有一个长文本字符串的富文本框,如下所示:

我想要的是第二行和第三行的缩进:

所以文本应该是这样的:

1.       Bitte blenden Sie über die Layerpalette alle für
         die Raumverknüpfung notwendigen zusätzlichen Layer
         ein.

我试过了

richtextbox.SelectionIndent = 5 

但这只会缩进整个文本(带有“1.”)。

有没有可能在 RTB 中解决这个问题?

我必须补充一点:将句子分成三段是没有解决办法的,因为我使用的本地化字符串必须是一体的。

【问题讨论】:

  • 它看起来像是您想要显示的某种非用户可编辑的提示文本。例如,为什么你需要它是一个richttextbox,而不是一个标签和一个文本框?
  • 绝对正确,它永远只是一个提示文本。起初我只有一个普通的文本框,但我认为使用 RTB 可以更好地进行格式化。就这么简单,你是对的,这将是一个解决方案。我想我会像你说的那样做,但我也想知道是否有另一种方法(一种格式化 RTB 的方法)

标签: c# formatting richtextbox


【解决方案1】:
string text ="1.Bitte blenden Sie über die Layerpalette alle für  die Raumverknüpfung notwendigen zusätzlichen Layer ein.";
        int rowMaxLenth = 30;
        int firstRowIndex = 2;
            text = text.Insert(firstRowIndex,"\t");




        for (int i = 1; i < text.Length / rowMaxLenth; i++)
        {

            text= text.Insert((i*rowMaxLenth),"\n\t");
        }
        rchTextbox.Text = text;

但是你需要一些改变,你是在 word 中还是在 word 之后插入制表符

【讨论】:

  • 不幸的是,这对我来说没有选择,因为我无法拆分字符串,因为实际上我不知道它有多长(我通过本地化字符串链加载它 ==> 可能是俄罗斯文本或其他)
  • 可以设置行字符串长度,每行插入制表符
  • 你有这方面的例子吗?我不太清楚你的意思
  • 我只需要稍微改变一下,这样它就不会断词,但总而言之,这是一个很好的解决方案。谢谢
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多