タイトル : Re^4: 「*」 メタ文字について 投稿日 : 2007/05/25(Fri) 01:31 投稿者 : area88
こんにちは、area88です。 Give Up、、、。(T_T) Dim X As Integer = e.RowIndex Dim Y As Object = DataGridView3(2, X).Value For Each LB As Object In ListBox1.Items If Object.Equals(Y, LB) Then ListBox2.Items.Remove(DataGridView3(0, X).Value + " - " + Y) ListBox2.Items.Add(DataGridView3(0, X).Value + " - " + Y) End If Next このようなコードを書いています。 ListBox1には、例として、「馬、牛、羊」が登録されています。 で、DataGridView3の行2のCellに、アイテムを入力すると(コンボボックスで選択できます。) ListBox1に登録されているアイテムと一致すると、ListBox2に登録される仕組みです。 ここで、DataGridView3(0, X).Valueとは、000、001、、、という数列で、DataGridView3の行0に すでに登録されています。(テキストから読み込んでいる。) ListBox2に登録される形式は、000 - 馬、001 - 羊、、005 - 羊、、010 - 牛となっていきます。 もちろん、002 - 犬なら、ListBox1には登録されていないので、ListBox2には登録されません。 さて、ListBox2には、000や001には一つのアイテムしか登録したくありません。 すでに、000 - 馬がListBox2に登録されており、DataGridView3で、000を牛に変更した際、 ListBox2の000 - 馬を消去し、000 - 牛に登録しなおしたいのです。 このコードでは、000 - 馬が消えずに、000 - 牛が登録されていきます。そして次に変更した アイテムもどんどん追加されていきます。(000アイテムが増えていく。) 000の後のアイテム(馬、牛、羊)は重複OKです。 000 - 馬、001 - 馬、002 - 馬でもOK。 そこで、000が一致したアイテムで、新規に登録したアイテムを残し(この場合は牛)、 古いアイテム(この場合は馬)を消去するため、Like演算子を使ったり、"000 - *"で 検索してみたり、Containsで一致を試みましたが、(これは完全一致ですね。)うまく ListBox2で重複したとき、000アイテムが消えてくれません。 Replaceで、文字列の置換をやってみましたが、どーもイマイチで、、、。 何かいい方法、あるでしょうか? |