.vb showdialog 如何让 页面显示在 屏幕中间 StartPosition 没效果
时间: 2024-03-09 16:48:44 浏览: 161
如果 `StartPosition` 属性设置为 `FormStartPosition.CenterScreen` 没有效果,您可以尝试以下方法:
1. 在窗体的 `Load` 事件中添加以下代码:
```
Me.Location = New Point((Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2, (Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2)
```
这将在窗体加载时将其位置设置为屏幕中央。
2. 如果您的窗体是从另一个窗体中打开的,您可以在打开窗体的代码中添加以下代码:
```
Dim form As New Form2()
form.StartPosition = FormStartPosition.Manual
form.Location = New Point((Screen.PrimaryScreen.Bounds.Width - form.Width) / 2, (Screen.PrimaryScreen.Bounds.Height - form.Height) / 2)
form.ShowDialog()
```
这将在打开窗体时将其位置设置为屏幕中央。
请注意,这种方法可能不适用于所有情况,因为屏幕的大小和分辨率可能会影响窗体的位置。
相关问题
VB中的Frame弹窗能不能使用frmXCQCFile.Show vbModal这样的语句聚焦
在 Visual Basic (VB) 中,`Frame` 控件本身并不是一个独立的窗体,它通常作为包含其他控件的容器出现在其他窗体上。因此,直接使用 `frmXCQCFile.Show vbModal` 这样的语句将不会直接作用于 `Frame`。
然而,如果你有一个包含 `Frame` 的窗体 `frmParent` 并想在其中的 `Frame` 上显示另一个独立的窗体 `frmXCQCFile` 以模态模式(即阻塞 `frmParent` 的交互),你需要先确保 `frmXCQCFile` 与 `frmParent` 之间有正确的引用关系,然后在 `frmParent` 中处理。你可以这样做:
```vb
Private Sub ShowChildFormInFrame()
Dim childForm As New frmXCQCFile
childForm.FormBorderStyle = FormBorderStyle.FixedDialog ' 设置边框样式为模态
childForm.StartPosition = FormStartPosition.CenterParent ' 集中显示
' 将childForm添加到frame中
Frame.Controls.Add(childForm)
' 显示childForm
childForm.ShowDialog(Me.Frame) ' 使用frame的顶级形式来显示模态对话框
End Sub
```
在这个例子中,`ShowDialog` 方法的参数是 `Me.Frame`,这样可以让 `childForm` 在 `Frame` 内以模态模式显示。
阅读全文