###実践、やりたい事と変更したい場所
変更前のコード
Imports System.Globalization Public Class Form1 Private list As New List(Of String)() Private Sub Kaou_Load(sender As Object, e As EventArgs) Handles MyBase.Load list.Add("あり") list.Add("ありんこ") list.Add("いぬ") list.Add("いのしし") list.Add("うさぎ") end sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.SelectedIndex = 0 Then TextBox2.Text = "10" End If If ComboBox1.SelectedIndex = 1 Then TextBox2.Text = "10" End If If ComboBox1.SelectedIndex = 2 Then end if If ComboBox1.SelectedIndex = 3 Then TextBox2.Text = "100000" End If If ComboBox1.SelectedIndex = 4 Then TextBox2.Text = "150000" End If end sub '値段は例です全部で5個あります Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged 'テキストを書き換えるたびに、 'リストの内容を先頭一致でフィルタリング Dim ci = New CultureInfo("ja-jp").CompareInfo Dim opt As CompareOptions opt = opt Or CompareOptions.IgnoreWidth '全角と半角を区別しない opt = opt Or CompareOptions.IgnoreKanaType 'ひらがなとカタカナを区別しない opt = opt Or CompareOptions.IgnoreCase '大文字と小文字を区別しない opt = opt Or CompareOptions.IgnoreNonSpace '文字列比較で分音文字などの結合の分音文字を無視することを示します。 opt = opt Or CompareOptions.IgnoreSymbols '文字列の比較が空白文字が区切り記号、通貨記号、パーセント記号、数学記号、アンパサンド、やなどの記号を無視することを示します。 Dim txt As String = TextBox3.Text ComboBox1.DataSource = list.Where( Function(s) Return 0 = ci.Compare(Strings.Left(s, txt.Length), txt, opt) End Function).ToArray() End Sub End Class
変更前のコードは全体のコードです。
・「変更前」で実践
textbox2=値段、textbox3=文字入力するとその文字が表示される
あ=あり、ありんこ(カタカナでも可能)
い=いぬ、いのしし
う=うさぎ・・・など他の文字は表示されません。
・indexとtextbox2これでやってます。
この場合新しいアイテム追加(間に入れるときも)して書き出し
追加前
index="1"Then’ありんこ
textbox2.text=""
追加後
index="2"Then'ありんこ
textbox2.text=""
こんな感じで何個があります。
これを書き直しなど大変なのでindexとtextbox破棄しました。
変更後のコード
Imports System.Globalization Public Class Form1 Private list As New Dictionary(Of String, Integer) Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ’変更前の list.Add("あり") '変更後のアイテム list.Add("あり", 1) list.Add("ありんこ", 2) list.Add("いぬ", 1) list.Add("いぬねこ", 2) ComboBox1.DisplayMember = "key" ComboBox1.ValueMember = "value" ComboBox1.DataSource = New BindingSource(list, Nothing) ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged TextBox1.Text = ComboBox1.SelectedValue.ToString End Sub Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Dim cca = New CultureInfo("ja-jp").CompareInfo Dim opt As CompareOptions opt = opt Or CompareOptions.IgnoreWidth '全角と半角を区別しない opt = opt Or CompareOptions.IgnoreKanaType 'ひらがなとカタカナを区別しない opt = opt Or CompareOptions.IgnoreCase '大文字と小文字を区別しない opt = opt Or CompareOptions.IgnoreNonSpace '文字列比較で分音文字などの結合の分音文字を無視することを示します。 opt = opt Or CompareOptions.IgnoreSymbols '文字列の比較が空白文字が区切り記号、通貨記号、パーセント記号、数学記号、アンパサンド、やなどの記号を無視することを示します。 Dim txt As String = TextBox2.Text ComboBox1.DataSource = New BindingSource(list.Where( Function(s) Return 0 = cca.Compare(Strings.Left(s.Key, txt.Length), txt, opt) End Function).ToArray(), Nothing) End Sub End Class
全体でのコードです。
###変更後のやりたい事と修正したい
変更後のコードで文字をいれても変わりません
**値段の方は
TextBox1.Text = ComboBox1.SelectedValue.ToString
解決?しました。
変更後
textbox1が値段、textbox2を文字を入力(検索)にしました。
###わからない事、教えてほしいこと
文字を入力後、comboboxのアイテムが消える
「あ」を入れてもあり、ありんこのみ表示しない
変更前はあをいれるとあり、ありんことほかの文字は出ません。
このように実行させたいのですがご迷惑をおかけしすいません。
・文字を入力後の改善修正を教えてもらえますでしょうか?
申し訳ございません。変更前と変更後の書き直ししました。
いろいろと試しにコード変えてみましたが4,5時間やってもできませんでした。
初心者ですがよろしくお願いいたします。
###バージョン
Windows10
Vistual basic
Vistual studio2019を使ってます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/21 05:34 編集
2019/02/20 21:35
退会済みユーザー
2019/02/21 06:07
退会済みユーザー
2019/02/21 06:49
退会済みユーザー
2019/02/21 06:55
2019/02/21 12:48
2019/02/21 13:03
2019/02/21 22:08