tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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で、文字列の置換をやってみましたが、どーもイマイチで、、、。

何かいい方法、あるでしょうか?

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。