【发布时间】:2013-06-05 17:46:56
【问题描述】:
这不是关于如何更改字体大小的问题。相反,为什么我的字体大小在我键入(或粘贴)时会自行改变,当它位于一个普通的 TextBox 控件中时时间。
我的代码:
using(FontDialog d = new FontDialog())
{
// The usual properties...
if(d.ShowDialog() == DialogResult.OK)
{
textbox1.Font = d.Font;
}
}
字体设置为 8pt。如果我将纯文本粘贴到其中,顶行将是 9 到 10pt,而底行明显更小(约 8 pt)。
我选择哪种字体、字体样式或字体大小都没有关系;这种情况一直在发生!
更新
感谢您迄今为止的所有帮助。在下面回答您最近的问题:
我的应用面向 .NET 4.5。
代码中没有混淆,因为我能够在一个新的 Windows 窗体项目中重现这个问题,除了一个表单、一个文本框和一个调用 FontDialog 的按钮。
为了回答有关我的视频驱动程序的问题,我确实需要支持我几周前购买的应用程序,他们告诉我运行 DXDiag,他们回复我说我的视频卡驱动程序已过期,但是我没想到是因为我总是每隔几个月检查一次。然后我去了制造商的网站,它说我已经为我的系统安装了最新的驱动程序。
Windows 更新还说没有新的可用更新。不过,我会再次检查新版本的驱动程序。
我还在一个新的空白项目中进行了测试,在该项目中显示 TextBox 在调用 FontDialog.ShowDialog() 之前 使用的字体,在它显示之后和新字体之后已设置并且一切都匹配 - 但是在更改文本框内的字体/字体大小后仍然存在问题。
【问题讨论】:
-
我想知道它是否与处理 FontDialog 的 using 块有关。尽量不要丢弃,看看会发生什么。
-
Dispose 方法的最佳实践是所有基类/父类也都被处理...说实话对字体或 Windows 窗体应用程序不太熟悉,但您可以做的一件事是调试并查看在 using 块之前和之后的 Font 对象上,看看有什么变化,如果有的话。
-
您可以将您的项目上传到 DropBox 或其他文件共享服务吗?我的猜测是您在代码中进行了混淆,或者您安装了一些 Windows 样式工具。
-
开始从程序中剥离所有内容,直到您拥有仍然重复问题的最简单的程序。如果在执行此操作时问题消失了,那么您只是找到了问题的根源。如果没有,请在此处发布完整示例。
-
请同时说明您的目标是哪个 .NET 框架版本。