在Win Form Rich Text Box中切换RTL和LTR时显示问题

时间:2014-11-14 15:47:44

标签: c# winforms richtextbox right-to-left

我在Win窗体和WPF窗体中都尝试过相同的东西,似乎这只发生在Win Form中。 基本上发生的事情是我在Win Form中有一个RTB控件,还有两个按钮:RTL和LTR来调整对齐。

按钮1点击:

richTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;

按钮2点击:

richTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.No;

这就是我的全部。当我将文本粘贴到RTB并单击RTL按钮时,它在RTB中留下了很大的空白。我注意到只有在滚动条出现时才会发生这种情况。如果你调整表格大小,差距就会消失。

请参阅屏幕截图的链接: screenshot of the issue

我尽我所能,但无法弄清楚为什么会这样。我怀疑这是一个.NET错误,有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我可以解决的唯一解决方案是在更改RTB控件的RightToLeft属性并添加Application.Doevents()时重置文本。

像这样:

private void buttonRTL_Click(object sender, EventArgs e)
{

    string txtRTF = RichTextBox1.Rtf;
    RichTextBox1.Clear();
    RichTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
    Application.DoEvents();
    RichTextBox1.Rtf = txtRTF;

}