在加载事件中,我设置左侧和顶部位置。发生了什么是表单显示在默认位置,然后转到我手动设置的位置。因此它在一个位置闪烁然后立即进入手动设置。 (希望这是有道理的..如果我需要提供更多信息,请告诉我)
Dim rkCurrentUser As RegistryKey = Registry.CurrentUser
If rkCurrentUser IsNot Nothing Then
Dim rkTest As RegistryKey = rkCurrentUser.OpenSubKey("My Secret Life")
If rkTest IsNot Nothing Then
regKey = Registry.CurrentUser.CreateSubKey("My Secret Life")
Dim myLeft As Integer = 0
myLeft = regKey.GetValue("frmMainLeft", myLeft)
Dim myTop As Integer = 0
myTop = regKey.GetValue("frmMainTop", myTop)
Dim myMinutes As Integer = 0
myMinutes = regKey.GetValue("waitMinutes", myMinutes)
Me.Top = myTop
Me.Left = myLeft
regKey.Close()
rkTest.Close()
rkCurrentUser.Close()
End If
Else
MsgBox("Key doesn't exist")
regKey = Registry.CurrentUser.CreateSubKey("My Secret Life")
regKey.SetValue("waitMinutes", 0)
regKey.SetValue("frmMainLeft", Me.Left)
regKey.SetValue("frmMainTop", Me.Top)
regKey.Close()
End If
rkCurrentUser.Close(
感谢您提供任何帮助......我知道最后一个角色已被删除。
答案 0 :(得分:0)
以下是一些示例代码,说明了我通常做的事情:
Function Display() As DialogResult
Me.Icon = frmMain.Icon 'so we only change icons in one place
'other initialisation stuff goes here
RestoreFormSettings(Me) 'get form position (and size if resizable) from registry (your code)
Return Me.ShowDialog() 'show the form modally, then return dialog result
End Function
你应该发现这消除了闪烁。我还包括了我所做的工作以确保应用程序中的图标一致性,以及如何返回DialogResult,这是调用代码知道您在表单中所做的一种方式。为了澄清,请调用它而不是直接调用frm.ShowDialog。