表单的宽度属性不是它设置的,虽然看起来不错

时间:2011-04-21 08:42:49

标签: vb6 width

表单的bordertyle是“固定单一”,因此用户无法手动更改表单的尺寸。

有一个菜单项允许用户为表单选择2个宽度设置中的1个,选择宽(宽度= 11715)显示额外的控件。

在加载事件期间,调用sub来设置各种值,其中包含以下代码:

     If rs.Fields("ShowAll").Value = True then
        Me.Width = 11715

在表单卸载事件期间,调用sub来记录下次的设置,其中包含以下代码:

     If Me.Width = 11715 Then
        rs.Fields("ShowAll").Value = True
     Else
        rs.Fields("ShowAll").Value = False
     End If

一位用户报告的情况是,即使他总是以“宽”形式关闭,它总是打开“狭窄”。

我以前从未见过这种情况,也没有人报告过这种情况,这并不是说它不会发生在其他地方。

他的机器是Windows 7,屏幕分辨率是1280 X 1024。

编辑: 此外,当我检查他的数据库时,“ShowAll”的值为False。

2 个答案:

答案 0 :(得分:3)

我建议使用表单级布尔变量而不是特定数字。如果您想让它更容易理解,您也可以将其包装在属性中。在加载应用程序时使用数据库值初始化变量,并在单击按钮时切换值以选择表单大小。

Private m_blnExpanded As Boolean

Private Property Let Expanded(ByVal vExpanded As Boolean)

       m_blnExpanded = vExpanded

End Property
Private Property Get Expanded() As Boolean

       Expanded = m_blnExpanded

End Property

答案 1 :(得分:2)

如果要对宽度进行硬编码,则必须为小字体选择15的倍数,对于大字体选择12的倍数。两者的最小倍数为60,因此最接近您的硬编码值为11700,小字体为780px,大字体为975px。

请注意,除了96(又名“小字体”)和120(又名“大字体”)之外,win7还带有更多DPI尺寸,这完全失败了VB6表格子系统。因此,您可以安全地假设在VB6中,像素大小为15或12缇。