如何在 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# 中“对齐”文本?的主要内容,如果未能解决你的问题,请参考以下文章
VB 如何把richtextbox中已经选中的部分文字,加粗、左对齐、居中、右对齐。不胜感激!!!