如果使用Form_Shown事件,为什么不加载数据?

时间:2017-02-28 07:08:38

标签: c# vb.net winforms data-binding datagrid

我正在使用DataGrid控件处理WinForms应用程序。我使用BindingSource作为数据源,并在 Form_Shown 事件中初始化了 BindingSource.DataSource 。父表已正确加载但未加载子表。 如果我在Form_Load事件中初始化BindingSource.DataSource,它运行正常,没有问题。

为什么在Form_Shown和Form_Load事件中使用BindingSource会发生这种差异?

请让我知道原因。 `

 Form1.Designer.vb
 Me.DataGridView.DataSource = Me.BindingSource1

Form1.vb的

Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    ''Does not work
    BindingSource1.DataSource = ParentList.FetchMaintenance
    ''Does work
    DataGridView.DataSource = ParentList.FetchMaintenance
End Sub

1 个答案:

答案 0 :(得分:0)

根据MSDN:

  

Form_Load或Load事件发生在显示表单之前   第一次。

虽然

  

只有在第一次显示表单时才会显示“已显示”事件。

也许是因为表单没有加载你的绑定源,这就是为什么它没有加载Shown事件。因为没有显示。