0

VB.NETのフォームイベントを勉強中

私のプログラムは、VB.NET フォームで日付の一部を読み込んで設定しています。

ソフトウェアでチェック ボックスを true に切り替えると、突然 System.IndexOutOfRangeException が発生します。

たとえば、コントロールと for ループを使用してチェック ボックスのステータスを切り替えています コントロール メソッドを使用してグループ ボックスのチェックボックスをループおよび検索しています

For Each c As Control In GT.SET_MY.Controls
    If c.GetType Is GetType(CheckBox) Then
        Dim sc As CheckBox = DirectCast(c, CheckBox)
        If BW_List(BW_INDEX).Trim = "Y" Then
            **sc.Checked = CB.T** ' **ERR POINT**
            Tracker = sc.Text
        Else
            sc.Checked = CB.F
        End If
        BW_INDEX -= 1
    End If
Next

プログラムが " sc.Checked = CB.F" のようにチェックボックスを false に設定した場合。エラーはありません

ただし、プログラムがチェックボックスをtrueに設定すると(sc.Checked = CB.T)、System.IndexOutOfRangeExceptionに戻ります。

なぜこれが起こるのかはっきりとはわかりません...

エラーメッセージは

Myproject.exe で、タイプ 'System.IndexOutOfRangeException' の初回例外が発生しました

ステップ イン: 非ユーザー コード 'System.Windows.Forms.Control.WmShowWindow' をステップ オーバーする

ステップ イン: 非ユーザー コード 'System.Windows.Forms.NativeWindow.DebuggableCallback' をステップ オーバーする

ステップ イン: 非ユーザー コード 'System.Windows.Forms.Control.SetVisibleCore' のステップ オーバー

ステップ イン: 非ユーザー コード 'System.Windows.Forms.Form.SetVisibleCore' のステップ オーバー

なぜこれが起こるのか誰か知っていますか?

わかった

このエラーの大きな問題を見つけました

ソフトウェアが自動的にチェックまたはチェック解除されると、ソフトウェア内のいくつかのイベントがランダムにトリガーされ、エラーの原因になります。

4

0 に答える 0