掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2個のリストボックスの中身を比較して同じだったら消去するには? (ID:140919)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VB2005で2個のリストボックスから共通するテキストを削除するにはどうしたらいいのでしょうか? Aのリストボックス Bのリストボックス あいうえお たちつてと さしすせそ はひふへほ なにぬねの らりるれろ かきくけこ あいうえお まみむめも このように入力されているとします そしてAのリストボックスから「あいうえお」を選択して削除すると Bのリストボックスからも「あいうえお」が削除されるようにしたいのですが 方法が分かりません ちなみに自分が今作ってエラーになってしまうプログラムは If ListBox1.Items.Count = 0 Then MessageBox.Show("クリップボードの中身がありません", "通知") ElseIf ListBox1.SelectedItem = Nothing Then MessageBox.Show("文章が選択されていません", "通知") Else Dim c As Integer = 0 While ListBox2.Items.Count <> 0 If ListBox1.SelectedItem = ListBox2.Items(c) Then ListBox2.Items.Remove(ListBox2.Items(c)) ListBox1.Items.Remove(ListBox1.SelectedItem) i -= 1 Else c += 1 End If End While End If End Sub このようになっています 自分がやっているつもりとしては ①Aのリストボックス1の選択しているテキストとBのリストボックスのc番目のテキストを比較 ②同じだったらBのリストボックスのc番目のテキストとAのリストボックスの選択されているテキストを削除 ③見つかったらiを-1 ④見つからなかったらcを+1してBのリストボックス2の中身を再度比較 iはテキストをコピーまたは切り取りした時にAのテキストボックスにテキストを追加して+1しています Aのリストボックスの要素数のつもりで使用しています これで実行するとリストボックスに追加したテキストが1個の場合は両方から削除されますが2個以上テキストを追加するとエラーでプログラムが停止してしまいます その際に If ListBox1.SelectedItem = ListBox2.Items(c) Then この部分でエラーが発生します エラー詳細は '2' の InvalidArgument=Value は 'index' に対して有効ではありません。 パラメータ名: index となります '2' の数字はリストボックスに追加したテキストの数によって変わります どうにもお手上げの状態なのでどなたか分かる方はお願いしますm(_ _)m
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.