0

私は 4 週間 VB を学んでいますが、知識の限界に達しています。経験豊富なプログラマーの助けを借りることができるはずです!!

リスト ボックスをループして、各項目の最初の 4 文字を削除しようとしています。

具体的には、次のように動作することを望みます。

リスト ボックスの最初の行が選択され、文字列 (最初の 4 文字を差し引いたもの) に送信されます リスト ボックスの最初の行がリスト ボックスから削除されます リスト ボックスの最初の行の変更されたバージョンがリスト ボックスの元の位置と同じ位置に追加されます

リスト ボックスの次の行が選択されている...など.... リスト ボックス全体が変更されるまで繰り返します

ここに私がこれをやろうとしている方法のサンプルがあります....それはほとんどうまくいきます:)

Dim test As String test = ListBox1.SelectedItem.ToString.Substring(4) ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Add(test)

誰かが私のために空欄を埋めることができますか? よろしくお願いいたします。

4

2 に答える 2

0

ListBox 項目は、この方法でアクセスおよび編集できます。

   listBox1.BeginUpdate();
try {
  for(int i = listBox1.Items.Count - 1; i >= 0 ; i--) {
    // do with listBox1.Items[i]

  }
} finally {
  listBox1.EndUpdate();
}
于 2012-08-23T05:15:53.120 に答える
0

まず、再確認するために、ループスルーしていますか?

次に、次の行を見てみましょう。

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Add(test)

私がこの権利を理解していれば、特定のインデックスの項目を削除してから、新しい文字列 test をリストに追加し直しています。これを見ると、http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.objectcollection.add.aspx、リストボックスの最後にこのアイテムを追加するようですが、指定したインデックスで何かを削除しています。

したがって、置き換えていると思われるものを実際に置き換えているわけではありません。それが私の最善の推測です。たとえば、リストの 2 番目の要素を削除しても、test をリストに戻すと、最後に追加されます。[a,b,c,d] のようなものは [a,c,d,b] になります。

おそらくそれを次のように変更します。

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Insert(ListBox1.SelectedIndex, test)
于 2012-08-22T23:33:17.703 に答える