Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RichTextBox无法显示Unicode数学字母数字符号_C#_.net_Winforms_Unicode_Richtextbox - Fatal编程技术网

C# RichTextBox无法显示Unicode数学字母数字符号

C# RichTextBox无法显示Unicode数学字母数字符号,c#,.net,winforms,unicode,richtextbox,C#,.net,Winforms,Unicode,Richtextbox,我无法让WinFormsRichTextBox显示一些Unicode字符,尤其是(但问题很可能不限于这些字符) 令人惊讶的是,相同的字符可以使用相同(默认)字体显示在普通或多行文本框中。即使我将字体更改为例如“Arial”或“Lucida”,我也会得到相同的结果 屏幕截图来自Windows10,但我在Windows7上得到了相同的结果。该示例显示ascii小a-d后跟数学斜体无衬线小alpha-delta 我正在使用Visual Studio 2017和.NET 4.6.1 一个简单的测试代码

我无法让WinForms
RichTextBox
显示一些Unicode字符,尤其是(但问题很可能不限于这些字符)

令人惊讶的是,相同的字符可以使用相同(默认)字体显示在普通或多行
文本框中。即使我将字体更改为例如“Arial”或“Lucida”,我也会得到相同的结果

屏幕截图来自Windows10,但我在Windows7上得到了相同的结果。该示例显示ascii小a-d后跟数学斜体无衬线小alpha-delta

我正在使用Visual Studio 2017和.NET 4.6.1

一个简单的测试代码:

private void InitializeComponent()
{
this.textBox1=new System.Windows.Forms.TextBox();
this.richTextBox1=new System.Windows.Forms.RichTextBox();
// ...
这个.SuspendLayout();
// 
//文本框1
// 
this.textBox1.Location=新系统.图纸.点(25,38);
this.textBox1.Multiline=true;
this.textBox1.Name=“textBox1”;
this.textBox1.Size=新系统.图纸.尺寸(182108);
this.textBox1.TabIndex=0;

this.textBox1.Text=“abcd这是一个缺陷/设计决定,在.NET 4.7中已经修复

RichTextBox
实际上是
RichEdit
的包装器。在.NET4.7中,控件使用
RICHEDIT50W
,而在以前的版本中它使用
RichEdit20W

要解决此问题,您可以使用以下任一选项:

  • 升级到.NET 4.7

  • 您可以使用最新版本的
    RichTextBox
    ,即
    RICHEDIT50W
    ,为此,您应该从标准
    RichTextBox
    继承并重写
    CreateParams
    ,加载库
    Msftedit.dll
    ,并将
    类名设置为
    RICHEDIT50W

要查看实现,请查看。

我已更改为4.7,现在运行良好。非常感谢@Reza Aghaei。它仍在4中运行。8@JadaVonRuth我最近没有尝试,但我检查了
RichTextBox
,我希望它能正常工作。请确保您没有使用
Switch.System.Windows.Forms.DoNotLoadLatestRich
AppContextSwitchOverrides
中的EditControl