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' のステップ オーバー
なぜこれが起こるのか誰か知っていますか?
わかった
このエラーの大きな問題を見つけました
ソフトウェアが自動的にチェックまたはチェック解除されると、ソフトウェア内のいくつかのイベントがランダムにトリガーされ、エラーの原因になります。