0

本当に私を悩ませている問題があります。パネルコントロール内に8つのチェックボックスがあります。パネルはautomation.vb[design]ファイルにあります。Automation.vb内で、単純なループを実行してコントロールを調べ、どのボックスがチェックされているかをチェックします。これは正常に機能します。

            For Each chk As CheckBox In pnlSelectedDays.Controls
                If chk.Checked Then
                   'do things
                End If
            Next

ただし、別のファイルをチェックインする必要がある場合、同じ構造になりますが、コントロールがチェックされていても、コントロールの状態がチェックされることはありません。最初のファイルでは問題ありませんが、2番目のファイルでは間違っています。

    For Each day As CheckBox In Automation.pnlSelectedDays.Controls
        If day.Checked Then
            'do some more things
        End If
    Next

別のファイルから呼び出しているからですか?私はwinformsに少し慣れていませんが、通常はc ++を実行するので、構造に問題がないかどうかはわかりません。そうでない場合は、automation.vbファイルで共有パブリック関数を作成して、他のファイルがそれを呼び出せるようにしますか?

編集:最初の例は、自動化フォームで保存ボタンが押されたときに呼び出されます。
2番目の例は、自動化フォームのOnCloseイベントから呼び出されます。

4

2 に答える 2

1

これが私があなたのために作ったちょっとしたコードです、試してみてください...

Public Sub ClearFields()

    For Each ctrl As Control In Animation.GroupBox1.Controls
        If TypeOf ctrl Is Checkbox Then
          CType(ctrl, Checkbox).Checked = False
        End If
    Next ctrl

End Sub

これにより、足を踏み入れることができます。これは、必要な場所に呼び出すことができるサブです...

ありがとう!

于 2013-01-10T08:51:29.970 に答える
0

私があなたの声を正しく聞いている場合(私も電話会議に参加しています)、タイミングの問題のように聞こえます。form_loadでは、チェックボックスの値は設計時に割り当てられた値です。2番目のフォームをどのようにインスタンス化、ロード、表示していますか?

于 2013-01-09T16:03:56.357 に答える