私のプログラムは、私が望んでいたものとは異なるフォームを開いていました。答えはそれを解決しました。
基本的に、プログラムの起動時にフォームを開くのを止めたかったのですが、手動で (ボタンを押して) 開くと、データが更新されました。問題の 2 番目の部分は解決されていませんが、最初の部分は解決されています。
私のプログラムは、私が望んでいたものとは異なるフォームを開いていました。答えはそれを解決しました。
基本的に、プログラムの起動時にフォームを開くのを止めたかったのですが、手動で (ボタンを押して) 開くと、データが更新されました。問題の 2 番目の部分は解決されていませんが、最初の部分は解決されています。
次のようなことを試すことができます:
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が閉じられるまでブロックされます。