vb MBI窗体加载子窗体的问题,麻烦高手帮忙解决下!谢谢!
我做的管理系统在调试程序的时候MDI窗体加载子窗体的时候总是出现问题,麻烦帮我看下问题出在哪里!
在MDI父窗体设置了窗体的大小
Private Sub MDIForm_Load()
Me.Left = GetSetting(App.Title, "Settings ", "MainLeft ", 1000)
Me.Top = GetSetting(App.Title, "Settings ", "MainTop ", 1000)
Me.Width = GetSetting(App.Title, "Settings ", "MainWidth ", 6500)
Me.Height = GetSetting(App.Title, "Settings ", "MainHeight ", 6500)
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
If Me.WindowState <> vbMinimized Then
SaveSetting App.Title, "Settings ", "MainLeft ", Me.Left
SaveSetting App.Title, "Settings ", "MainTop ", Me.Top
SaveSetting App.Title, "Settings ", "MainWidth ", Me.Width
SaveSetting App.Title, "Settings ", "MainHeight ", Me.Height
End If
End Sub
对要加载的子窗体也进行了边界 按钮的设置
Public fMainForm As frmmain
Private Sub Form_Resize()
'判断当前窗体所处的状态,当前窗体不处于最小化状态并且主窗体不处于最小化状态时进行后面的操作
If Me.WindowState <> vbMinimized And fMainForm.WindowState <> vbMinimized Then
'边界处理
If Me.ScaleHeight < 10 * lblTitle.Height Then
Exit Sub
End If
If Me.ScaleWidth < lblTitle.Width + lblTitle.Width / 2 Then
Exit Sub
End If
'控制控件的位置
lblTitle.Top = lblTitle.Height
lblTitle.Left = (Me.Width - lblTitle.Width) / 2
'控制表格控件的位置
msgList.Top = lblTitle.Top + lblTitle.Height + lblTitle.Height / 2
msgList.Width = Me.ScaleWidth - 200
msgList.Left = Me.ScaleLeft + 100
msgList.Height = Me.ScaleHeight - msgList.Top - 1500
'控制按钮位置
Frame2.Top = msgList.Top + msgList.Height + 50
Frame2.Left = Me.ScaleWidth / 2 - 3000
End If
End Sub
但是在调试的时候总是提示我 (错误 91)对象变量或 With 块变量没有设置
请问这是怎么回事啊?
[解决办法]
单步调试哪步有问题
[解决办法]
fMainForm赋值了吗?
[解决办法]
1 根据MDIForm_Load()和MDIForm_Unload中的语句可以判断
问题不是出在MDIForm
2 If Me.WindowState <> vbMinimized And fMainForm.WindowState <> vbMinimized Then
这一行变为
If Me.WindowState <> vbMinimized Then
测试一下,如果没问题了,说明fmainform没有设置就强行使用了
3 看这段代码貌似根据窗口大小调整窗口位置,建议利用现成的代码。
