Mengatasi Had Carian Awalan Sahaja dalam C# Autolengkap dengan Logik Tersuai
Walaupun terhad kefungsian autolengkap C# terbina dalam, ia mungkin untuk melaksanakan penyelesaian autolengkap tersuai yang membolehkan anda mencari hasil berdasarkan mana-mana bahagian rentetan. Ini amat berguna apabila maklumat tidak lengkap atau separa disediakan sebagai input.
Teknik Autolengkap Tersuai
Ciri autolengkap standard dalam C# hanya beroperasi dalam mod carian awalan, bermakna ia hanya boleh mencari padanan yang bermula dengan teks yang dimasukkan. Untuk mengatasinya, anda boleh melaksanakan logik autolengkap anda sendiri dengan mengatasi peristiwa seperti OnTextChanged.
Contoh Pelaksanaan
Cara yang berkesan untuk melaksanakan autolengkap tersuai ialah menggunakan ListBox untuk memaparkan perlawanan yang berpotensi. Berikut ialah coretan kod yang disemak:
// Initialize list box listBox1.Visible = false; listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; listBox1.LostFocus += listBox1_LostFocus; // Handle text changes in the text box void textBox1_TextChanged(object sender, System.EventArgs e) { listBox1.Items.Clear(); if (textBox1.Text.Length == 0) { hideResults(); return; } foreach (String s in textBox1.AutoCompleteCustomSource) { if (s.Contains(textBox1.Text)) { listBox1.Items.Add(s); listBox1.Visible = true; } } } // Hide the list box on selection void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { textBox1.Text = listBox1.Items[listBox1.SelectedIndex].ToString(); hideResults(); } // Hide the list box when it loses focus void listBox1_LostFocus(object sender, System.EventArgs e) { hideResults(); } // Hide the list box void hideResults() { listBox1.Visible = false; }
Penambahan
Penyelesaian autolengkap tersuai yang disediakan dalam contoh boleh dipertingkatkan lagi dengan menambahkan lebih banyak fungsi, seperti:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Autolengkap Carian Rentetan Penuh dalam C# Beyond Prefix-Only Matching?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!