我正在维护一个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
这可以很好地设置网格主体的字体,但是如果网格已经有数据,则必须清除并重新填充它。但是,即使您清除所有列并重新创建,标题也不会改变。
Property Set Font
例程中似乎有一个错误-它不会调用BuildMemDC
来使其缓冲的输出DC无效。
尝试使用RowHeight(1) = RowHeight(1) + 1
或类似的命令强制调用BuildMemDC
。您必须在其内部m_lMaxRowHeight
变量上方增加某一行的高度,以便进行重建。