DOBON.NET DOBON.NETプログラミング掲示板過去ログ

この列挙子がバインド・・・エラー

環境/言語:[winxp、vs2005(vb)]
分類:[その他]

以下のコードで2つのlistbox間の値の移動を移動をしていますが
L_DE.Items.Remove(V_ListItem_DE.ToString)
のところで「この列挙子がバインドされている一覧は変更されています。
列挙子は、一覧が変更しない場合に限り使用できます。」エラーに
なります。原因を教えて下さい。

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_To1From2.Click, Button_To2From1.Click
Dim L_IN As New ListBox
Dim L_DE As New ListBox
Dim V_ListItemAry_IN() As String
Dim V_ListItemAry_DE() As String
Select Case CType(sender, Button).Name
Case Button_To1From2.Name
L_IN = ListBox1
L_DE = ListBox2
Case Button_To2From1.Name
L_IN = ListBox2
L_DE = ListBox1
End Select

If L_DE.Items.Count > 0 And L_DE.SelectedItems.Count > 0 Then
For Each V_ListItem_DE As Object In L_DE.SelectedItems
V_ListItemAry_DE = Split(V_ListItem_DE.ToString, ":")
If L_IN.Items.Count = 0 Then
L_IN.Items.Add(V_ListItem_DE.ToString)
Else
For i As Integer = 0 To L_IN.Items.Count - 1
V_ListItemAry_IN = Split(L_IN.Items(i), ":")
If V_ListItemAry_DE(0) < V_ListItemAry_IN(0) Then
If i = 0 Then
L_IN.Items.Insert(0, V_ListItem_DE.ToString)
Exit For
End If
ElseIf V_ListItemAry_DE(0) > V_ListItemAry_IN(0) Then
If i = L_IN.Items.Count - 1 Then
L_IN.Items.Add(V_ListItem_DE.ToString)
Else
L_IN.Items.Insert(i + 1, V_ListItem_DE.ToString)
Exit For
End If
End If
Next
End If
L_DE.Items.Remove(V_ListItem_DE.ToString)
Next
End If

End Sub
■No21237に返信(XXXさんの記事)

> 以下のコードで2つのlistbox間の値の移動を移動をしていますが
> L_DE.Items.Remove(V_ListItem_DE.ToString)
> のところで「この列挙子がバインドされている一覧は変更されています。
> 列挙子は、一覧が変更しない場合に限り使用できます。」エラーに
> なります。原因を教えて下さい。

原因:
For Each の中で、元になるリストを Remove することはできません。
エラーメッセージの通りです。
No21234, No21235, No21237 の投稿はすべて別の名前で投稿されていますが、同じ方が投稿されているのでしょうか?もしそうであるならば、それぞれのご投稿の内容自体が「書き込みのルールについて」に沿っていないことと合わせて、非常に悪質であると判断されてしまいます。

これらの投稿は一人の方が行ったものなのか、それともすべて別々の方が行ったものなのか、教えていただけないでしょうか?(ご回答いただけなかった場合、それなりの処置をとらざるを得ないことをご了承ください。)

もし別々の方が行ったご投稿であったとしても、「書き込みのルールについて」は必ずお読みいただけますように、お願いいたします。

http://dobon.net/vb/bbs/index.html

DOBON.NET | プログラミング道 | プログラミング掲示板