手动设置启动的顶部和左侧位置不起作用

时间:2016-01-26 12:33:52

标签: vb.net registry

在加载事件中,我设置左侧和顶部位置。发生了什么是表单显示在默认位置,然后转到我手动设置的位置。因此它在一个位置闪烁然后立即进入手动设置。 (希望这是有道理的..如果我需要提供更多信息,请告诉我)

        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(

感谢您提供任何帮助......我知道最后一个角色已被删除。

1 个答案:

答案 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。