2017-02-24 5 views
-1

私はいくつかのテキストボックスに情報を入力できるようにする簡単なアプリケーションを作成してから、ボタンを押した後(Addbtn)、それらを1つの文字列に結合します。この文字列は、ConcernsChkというチェックボックスリストに追加されます。これらの文字列の1つまたは複数が完了すると、ユーザーは適切なチェックボックスをクリックし、その文字列を別のチェックボックスリストに転送するボタン(CompleteSortBtn)をクリックします。私が抱えている問題は、私のチェックボックスリストの項目が、チェックされたステータスに従って削除されないということです。彼らは一度に1つずつ上から削除していきます。CheckedBoxListsでチェックボックスを検索する

は、ここで問題のコードです:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles CompleteSortBtn.Click 

    Dim Disposition As String = "" 

    Dim i As Integer 
    If ConcernsChk.CheckedItems.Count > 0 Then 
     For i = 0 To (ConcernsChk.Items.Count - 1) 
      If ConcernsChk.GetItemChecked(i) = True Then 
       Disposition = ConcernsChk.Items(i) 
       DispositionChk.Items.Add(Disposition) 
       ConcernsChk.Items.Remove(Disposition) 
      End If 
     Next 
    Else 
     MessageBox.Show("Please add Concerns before marking them complete.") 
    End If 

私はエラーが私は3等しくないことを投げ続けると私はここから何をすべきか見当がつかない。これは、チェックボックスリストまたは2に2つの項目があるかどうかにかかわらずスローされます。

私はCompleteSortBtnを押すと、プログラムが4つのことをしたいと思っています。1. ConcernChkで検索2.チェックボックスを検索します。チェックボックスをDispositionChkにします。4.チェックしたアイテムをConcernChkから削除します。

長いポストにお詫び申し上げます。

+1

「私は3に等しくないというエラーが発生し続ける」このようなエラーメッセージや例外はありません。 [お問い合わせ]を読んで[ツアー]を取ってください。 – Plutonix

+0

**完全**エラーを入力してください。 – Bugs

+0

System.Windows.Forms.dllで 'System.ArgumentOutOfRangeException'型の未処理の例外が発生しました。 追加情報:InvalidArgument = '3'の値は 'index'には無効です。 –

答えて

0

チェックされていない項目がありますが、繰り返し回数は異なります。

あなたがリストから項目を削除しているので、あなたはそれを下から上に行う必要があります。

+0

したがって、チェック項目を繰り返し実行して別のチェックボックスリストに送信し、最初のチェックボックスリストから元のものを削除するようにコードを調整する必要がありますか? –

+0

だから私はすでに持っているものの下にこのコードを追加しますか?あるいは、私の前のコードをあなたがここに持っているものに置き換えますか? –

+0

私のループのためのあなたの既存のものを置き換えて –

関連する問題