【发布时间】:2018-04-24 03:31:11
【问题描述】:
根据 MSDN,
Font属性是环境属性,如果未设置,则会从父控件中检索。
所以我在Form 中创建了一个TextBox。确保删除TextBox1.Font 属性,编译后,文本框会按预期显示父字体。奇怪的是,在处理HandleCreated 事件时(或在继承时检查控件构造函数时)并检查TextBox1.Font 它不是null。
此外,我将Form1.Font 更改为更大的字体(从默认的Microsoft Sans Serif, 8.25pt 到Microsoft Sans Serif, 9.75pt),转到TextBox1.Font 属性并删除该值。编译后,文本框按预期显示较大的父字体。但是在HandleCreated 事件中,TextBox1.Font == null 是false(您将无法删除控制字体属性,但至少它不会是粗体)而且更有趣的是TextBox1.Font 不是 9.75pt 大小(父字体大小),但 Windows 默认 8.25pt。
我错过了什么?
只是为了补充代码
private void CtlTextBox_HandleCreated(object sender, EventArgs e)
{
if (this.Font == null)
{
MessageBox.Show("null");
}
else
{
MessageBox.Show(this.Font.Size.ToString());
}
}
因此,可能在以后的事件中将父字体设置为子控件。会是什么活动?我没主意了。
【问题讨论】: