0

私のプログラムは、私が望んでいたものとは異なるフォームを開いていました。答えはそれを解決しました。

基本的に、プログラムの起動時にフォームを開くのを止めたかったのですが、手動で (ボタンを押して) 開くと、データが更新されました。問題の 2 番目の部分は解決されていませんが、最初の部分は解決されています。

4

2 に答える 2

0

次のようなことを試すことができます:

    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が閉じられるまでブロックされます。

于 2016-07-15T09:01:52.650 に答える