1


アプリに MDI フォームと子フォームがあります。
ここで私の状況...

メイン フォーム : MDI フォーム
登録フォーム : MDI フォームの子
設計フォーム : 登録フォームのボタンをクリックすると開く別のフォーム。

今、登録フォームのコンボ ボックスの項目を設計フォームから更新しようとすると、更新されません。つまり、登録フォームのコンボ ボックスに新しいアイテムが表示されません。

登録フォームからアプリを直接起動しようとすると、同じコードが完全に機能しますが、MDI フォームからアプリを起動しようとすると同じコードが実行されません。

ここに私のコードがあります。
MDI フォーム:

Dim regform As New Register
StatusLabel.Text = "Opening Workman Registration"
regform.MdiParent = Me
regform.Show()
StatusLabel.Text = "Workman Registration"
regform.concombo.Focus()

登録フォーム:

 Public Sub refreshCombo()
    desigcombo.Items.Clear()
    sitecombo.Items.Clear()

    addDesCombo() ' method which will loads all new data from database 

    desigcombo.Text = designame ' the string variable (designame)


End Sub

設計フォーム

Register.refreshCombo() ' will run when we will click on one button.

MDI フォーム (子フォーム) を使用するときに覚えておく必要があるものはありますか?

4

1 に答える 1

1

登録フォームは 1 つしかなく、VB はそれをフォームのインスタンスと自動的に見なすため、Desig から登録を更新すると、登録からアプリを起動すると機能します。

登録フォームが子フォームの場合、クラス名ではなくフォームのインスタンスを使用する必要があります。MainForm.ActiveMdiChild.refreshCombo()

于 2010-12-02T07:17:21.617 に答える