加载时表单打开



我的程序打开了一个与我想要的不同的形式。答案解决了它。

基本上,我想在程序启动时停止表单打开,但是当它手动打开(按下按钮)时,它会更新数据。问题的第二部分没有解决,但第一部分已经解决。

你可以尝试这样的事情:

    Public Class HomeForm
        Private WithEvents m_DataChangeForm As DataChangeForm
        Private Sub HomeForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            m_DataChangeForm = New DataChangeForm()
            m_DataChangeForm.Show()
        End Sub
        Private Sub OnDataSourceChanged(sender As Object, args As EventArgs) Handles m_DataChangeForm.OnDataSourceChanged
            MessageBox.Show("Data source changed!")
        End Sub
    End Class
    Public Class DataChangeForm
        Inherits Form
        Public Event OnDataSourceChanged(sender As Object, args As EventArgs)
        Private WithEvents m_Button As Button
        Public Sub New()
            m_Button = New Button()
            m_Button.Text = "Change"
            m_Button.Parent = Me
        End Sub
        Public Sub buttonClick(sender As Object, args As EventArgs) Handles m_Button.Click
            RaiseEvent OnDataSourceChanged(sender, args)
            Me.Close()
        End Sub
    End Class

由于您的表单在您调用 ShowDialog 之前显示 HomeForm,它会阻止,直到 DataChangeForm 关闭。

您应该将代码从"加载"移动到"显示"事件。

Private Sub Homefrm_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    Using fp = New dataChangefrm(m_database)
        If fp.ShowDialog() = DialogResult.OK Then
           uwgHome.DataSource = Nothing
           loadData()
       End If
    End Using
    Me.Location = New Point(0, 0)
loadData()
End Sub

请查看第一行中的句柄。这取决于您的项目。

最新更新