我正在使用双监视器屏幕。我有一种情况,表单在主窗体后面。我保留了一个跟踪表单移动和位置更改的日志文件。我继续用表单位置写日志文件。< / p>
我发现在表单显示后表单位置为负。 所以我计算了屏幕的中心,并在表格展示之前编写了以下代码。
iLeft = (VB6.PixelsToTwipsX(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width) / 2) - (VB6.PixelsToTwipsX(frmForm.Width) / 2)
iTop = (VB6.PixelsToTwipsY(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height) / 2) - (VB6.PixelsToTwipsY(frmForm.Height) / 2)
frmDataForm.SetBounds(iLeft, iTop, 0, 0, Windows.Forms.BoundsSpecified.X Or Windows.Forms.BoundsSpecified.Y)
我尝试了以下修复程序,它适用于某些情况。
Private Sub frmDataForm_Move()
If Me.Location.X < 0 And zbFirstLoad Then
CenterForm(0, Me)
zbFirstLoad = False
ElseIf Me.Location.X > 0 AndAlso Me.Visible Then
zbFirstLoad = False
End If
在表单加载时,我每次都设置bool变量为true。
zbFirstLoad = True
然而,当消息框打开时,消息框会出现在主屏幕后面。 关于上述情况,我有3个问题
注意:此问题出现在双显示器上。此问题仅出现在一台双显示器上,而不是其他任何地方。
请回复..!