如何在 RichTextBox C# 中“对齐”文本?

Posted

技术标签:

【中文标题】如何在 RichTextBox C# 中“对齐”文本?【英文标题】:How to 'align' text in RichTextBox C#? 【发布时间】:2011-09-08 18:11:33 【问题描述】:

如何对齐 RichTextBox 中的文本?

基本上,RTB 包含:

“--测试”

“--测试”

“测试--”

“测试——”

它们都具有相同数量的字符,但具有不同的对齐方式。如何正确对齐它们?我对 C# 相当陌生并且很困惑,因为它在 Java 的 TextArea 中正确对齐。

谢谢!

【问题讨论】:

在这种情况下“对齐”是什么意思? 【参考方案1】:

您想使用RichTextBox.SelectionAlignment 属性。

例如,如果您希望整个文本框居中,那么您可以这样做:

richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;

如果您只希望文本框的一部分具有某种对齐方式,则使用 RichTextBox.Select() 例程选择文本,然后设置 SelectionAlignment 属性。

【讨论】:

当我在 RichTextBox 中追加文本时,有什么方法可以定义文本的对齐方式吗?否则,我必须附加文本,然后找到我插入的文本,选择它,然后更改它的对齐方式。 SelectionAlignment 在 WPF 中不存在 : ( 是的。 WPF 中不存在 SelectionAlignment。我们如何在 WPF 中实现相同的功能?【参考方案2】:

您必须将字体更改为等宽字体,例如 Courier。您显示的这种行为是大多数字体的标准行为,因为并非所有字符的宽度都相同。

【讨论】:

我不敢相信就这么简单。我测试了其他字体,但不幸的是它们不是等宽字体,我就放弃了。谢谢! 简单、基本、出色。如此明显,但在一百万年后我永远不会想到......【参考方案3】:
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
richTextBox1.DeselectAll();

【讨论】:

虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。【参考方案4】:

除非你非常需要使用富文本框,否则你可以简单地使用文本框并选择对齐方式

textbox.TextAlign = HorizontalAlignment.Center;/*could be left, right or center*/

【讨论】:

【参考方案5】:
RichTextBox1.SelectionAlignment = HorizontalAlignment.Center;

GetRichTextBox().SelectionAlignment = HorizontalAlignment.Center;

适用于多个页面。

【讨论】:

以上是关于如何在 RichTextBox C# 中“对齐”文本?的主要内容,如果未能解决你的问题,请参考以下文章

C#,RichTextBox:如何实现逐行滚动?

在 C# 中的 RichTextBox 中清除文本

VB 如何把richtextbox中已经选中的部分文字,加粗、左对齐、居中、右对齐。不胜感激!!!

求救,C#富文本框显示异常!

如何在 RichTextBox 中添加 RTF 文本,Win C#

如何在C#中更改richtextbox中多种大小的字体?