Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencipta Ciri AutoComplete Tersuai dalam C# TextBoxes yang Menyokong Padanan Bukan Awalan?

Bagaimanakah Saya Boleh Mencipta Ciri AutoComplete Tersuai dalam C# TextBoxes yang Menyokong Padanan Bukan Awalan?

Barbara Streisand
Lepaskan: 2025-01-02 18:28:38
asal
830 orang telah melayarinya

How Can I Create a Custom AutoComplete Feature in C# TextBoxes that Supports Non-Prefix Matching?

AutoLengkap Tersuai untuk Kotak Teks C#

Apabila melaksanakan fungsi autolengkap dalam kotak teks C#, selalunya wajar untuk membenarkan pengguna melengkapkan entri tanpa mengira susunan di mana mereka menaip. Contohnya, jika entri wujud dengan format "[001] Last, First Middle", ia sepatutnya muncul dalam hasil autolengkap apabila pengguna menaip "John" untuk nama pertama.

Limitation of Default AutoComplete

Fungsi AutoComplete lalai dalam C# hanya menyokong padanan awalan. Ini bermakna pengguna mesti menaip permulaan entri untuk mencetuskan autolengkap.

Mengatasi Autolengkap dengan Pengendalian Acara Tersuai

Untuk mengatasi had ini, anda boleh melaksanakan autolengkap tersuai berfungsi dengan mengatasi acara OnTextChanged. Ini membolehkan anda mengendalikan input teks dan memaparkan hasil autolengkap yang berkaitan secara dinamik.

Contoh Pelaksanaan

Contoh berikut menunjukkan cara mencipta fungsi autolengkap asas menggunakan ListBox:

  1. Buat ListBox dan tetapkan keterlihatannya kepada palsu dengan lalai.
  2. Gunakan acara OnTextChanged bagi TextBox untuk memantau input pengguna.
  3. Dalam pengendali acara OnTextChanged, lelaran melalui sumber autolengkap dan tambah item yang sepadan pada ListBox.
  4. Tetapkan keterlihatan ListBox kepada benar untuk memaparkan autolengkap hasil.
  5. Gunakan acara SelectedIndexChanged dari ListBox untuk memilih item dan mengisi TextBox dengan teks yang dipilih.

Fungsi Tersuai

Berikut ialah contoh cara melaksanakan fungsi autolengkap tersuai yang diterangkan di atas:

private 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))
        {
            Console.WriteLine("Found text in: " + s);
            listBox1.Items.Add(s);
            listBox1.Visible = true;
        }
    }
}
Salin selepas log masuk

Peningkatan

Pelaksanaan asas ini boleh dipertingkatkan dengan menambahkan fungsi seperti menambahkan teks pada TextBox, menangkap arahan papan kekunci tambahan dan melaksanakan penapisan berasaskan pada kriteria yang lebih kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Ciri AutoComplete Tersuai dalam C# TextBoxes yang Menyokong Padanan Bukan Awalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan