.NET4.8的RichTextBox文本对齐问题

问题描述

将文本对齐方式与RichTextBox进行比较时,其行为已从.Net4.6.1更改为.Net4.8。

有关如何在.Net4.8中实现.Net 4.6.1的早期行为的任何帮助?

enter image description here

public Form1()
    {
        InitializeComponent();

        
        RichTextBox richTextBox1 = new RichTextBox()
        {
            Width = 300,Height = 20,Location = new Point(100,100)
        };

        richTextBox1.Text = "中文_Dummy_Text";

        TextBox textBox = new TextBox()
        {
            Width = 300,200)
        };

        textBox.Text = "中文_Dummy_Text";

        this.Controls.Add(richTextBox1);
        this.Controls.Add(textBox);

    }

解决方法

在App.Config中添加运行时设置(如下所示)已还原为.NET 4.8中较旧的RTB。

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
        </startup>
      <runtime>
         <AppContextSwitchOverrides value="Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl=true"/>
      </runtime>
    
    </configuration>
,

将多行属性设置为false还可以恢复RTB的早期行为

richTextBox1.Multiine = false