| ■No85969 (furu さん) に返信
> ■No85965 (あ さん) に返信
>>2017/12/05(Tue) 23:27:50 編集(投稿者)
> TextBox1.TextChangedはForm1.TextBox2.Textで検索
> TextBox2.TextChangedはa00.TextBox1.Textで検索
'form1からform2に別form2でButton1をクリックするとform1にコンボボックスが表示される
Imports System.Globalization
Public Class Form1
Private list As New List(Of String)()
Dim a00 As New form2
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub form2_Click(sender As Object, e As EventArgs) Handles form2.Click
'form2が開く
a00.ShowDialog()
End Sub
’form1で文字を検索可能にしたいんです。
Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.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 '大文字と小文字を区別しない
Dim txt As String = TextBox2.Text
ComboBox1.DataSource = list.Where(
Function(s)
Return 0 = ci.Compare(Strings.Left(s, txt.Length), txt, opt)
End Function).ToArray()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim index As Integer
index = ComboBox1.FindString(TextBox2.Text)
ComboBox1.SelectedIndex = index
End Sub
End Class
form1はここまで。
From2のコード
Imports System.Globalization
Public Class From2
Private list As New List(Of String)()
Private Sub form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Close()
list.Add("あ")
list.Add("アイス")
list.Add("アメリカンドック")
list.Add("イカ")
list.Add("いす")
list.Add("いえ")
'form1に表示
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
ComboBox1.DataSource = list
End Sub
end class
form2からButton1をクリックするとコンボボックスに表示されますが
文字を検索するとコンボボックスに表示から消えてしまいます。
どうしたらできますか?教えてくださいお願い申し上げます。
|