I cannot get WinForms RichTextBox
display some Unicode characters, particularly Mathematical alphanumeric symbols (but the problem is most probably not limited to those).
Surprisingly the same characters can display in a plain or multiline TextBox
using the same (default) font. Even if I change the font to for example "Arial" or "Lucida", I get the same results.
The screenshot is from Windows 10, but I'm getting the same results on Windows 7. The example shows ascii small a-d followed by mathematical italic sans-serif small alpha-delta.
I'm using Visual Studio 2017 and .NET 4.6.1.
A trivial test code:
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
// ...
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(25, 38);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(182, 108);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "abcd ????????";
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(213, 38);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(179, 108);
this.richTextBox1.TabIndex = 1;
this.richTextBox1.Text = "abcd ????????";
// ...
}
Note that it does not seem to be a problem with storing the characters. The characters are correctly stored in the RichTextBox
. If you copy the text out and paste it somewhere (like to the TextBox
), all characters display correctly.
On the other hand, if you paste the characters to the RichTextBox
, you get the same incorrect display.
So it looks like a display problem only.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…