首页 > 解决方案 > 更改 vbalGrid 上的标题字体

问题描述

我正在维护一个 VB6 应用程序,该应用程序广泛使用旧的 VBAccelerator SGrid 2.0(vbalGrid,使用另一个 Grid 控件并不是一个真正的选择)。我需要在运行时更改网格字体,而我似乎没有做任何事情来更改标题字体,只有在设计时更改网格控件 Font 属性似乎实际上会更改字体。

这是我尝试过的代码,我认为它会起作用:

Dim Fnt As New StdFont
Set Fnt = vbalGrid.Font
Fnt.Name = "MS Sans Serif"
Set vbalGrid.Font = Fnt

这可以很好地设置网格主体的字体,但是如果网格已经有数据,您必须清除并重新填充网格。但是,即使您清除所有列并重新创建它们,标题也不会改变。

标签: vb6vbaccelerator

解决方案


看起来Property Set Font例程中有一个错误——它没有调用BuildMemDC使其缓冲的输出 DC 无效。

尝试RowHeight(1) = RowHeight(1) + 1或类似的轻推以强制BuildMemDC被叫。您必须增加其内部m_lMaxRowHeight变量上方某行的高度才能启动重建。


推荐阅读