【发布时间】:2017-11-20 10:08:17
【问题描述】:
我正在创建一个将 Unicode 显示到文本框和图片框的应用程序。
我在尝试使用泰语时遇到了一些问题,我不会说泰语,但我知道规则允许我有一个字符,然后在它之上最多有两个其他标记。
我尝试在文本框中输入以下 Unicode。 0E2c 然后在其上添加 0E36,然后是 0E4B。我已将文本框的字体大小设置为 30。我尝试和自动调整大小的文本框如下注释我尝试添加的高度超出了我的需要,以防万一会有所帮助,但可惜没有。
Size size = TextRenderer.MeasureText(txtbx_text.Text, txtbx_text.Font);
txtbx_text.Width = size.Width;
txtbx_text.Height = size.Height + 25;
我想要得到的是,但文本框显示的是,请注意顶部的位丢失了。知道如何强制文本框正确显示泰语吗?
我认为 txtbx_text.height 不起作用,因为我将大小增加了 2000 并且没有任何反应。宽度很好,那么如何使高度起作用?
代码可从http://www.filedropper.com/i-braille 获得。 选择页面 0e 将高度设置为 30。右键单击每个字符以构建字符串左键单击提供信息。 Form1.cs 第 116 行是我尝试设置文本框大小的地方。
【问题讨论】:
-
我认为您的假设可能是错误的。我刚刚使用虚拟键盘对此进行了测试,以创建所需的组合字符并将其设置为文本框值。显示很好,包括小加号。展示你是如何创造角色的。我宁愿怀疑那里的问题。
-
增大高度无济于事,只会在字母底部创建更多空间。字体很重要。不知道哪种字体最适合泰语文本,但不是 Winforms 中的默认字体。例如,“Segoe UI”可以正确完成工作。
-
@HansPassant 我尝试使用默认的 MS 无衬线字体以及 AngsanaUPC。两者对我来说都很好。
-
我可以毫无问题地重现 OP 的问题。并用更好的字体修复它。此类问题需要记录 Windows 版本。
-
我正在使用带有 VS2015 的 Windows 7 Professional SP1