Membuat Kotak Teks Google Suggestish di C# WinForms
Apakah Anda pernah ingin menerapkan kotak teks pintar di aplikasi C# WinForms Anda yang dapat mengingat entri pengguna seperti Google? Fungsionalitas ini, yang sering disebut sebagai fitur autocomplete, tidak hanya meningkatkan pengalaman pengguna tetapi juga membuat aplikasi Anda lebih fleksibel terhadap perilaku pengguna. Dalam pos blog ini, kita akan menjelaskan cara membuat kotak teks Google Suggestish
yang mengingat beberapa entri terakhir, menjamin efisiensi dan kenyamanan bagi pengguna Anda.
Masalah
Saat mengembangkan aplikasi mandiri di C#, menemukan cara yang efektif untuk terus mengingat masukan pengguna bisa menjadi tantangan. Pengguna mengharapkan pengalaman yang mulus di mana masukan terbaru mereka tersedia untuk pemilihan cepat, terutama di formulir atau bidang pencarian. Tujuannya jelas: membuat kotak teks yang mempertahankan beberapa entri terakhir bahkan setelah aplikasi ditutup.
Solusi
Kabar baiknya adalah bahwa menerapkan fitur ini cukup sederhana! Kita akan menggunakan AutoCompleteStringCollection
dari namespace System.Windows.Forms
untuk mengelola fitur autocomplete kita. Selain itu, kita akan menyimpan masukan ke dalam file teks agar entri tetap ada di antara sesi.
Panduan Langkah demi Langkah
Mari kita bagi implementasi menjadi bagian-bagian yang lebih mudah dikelola.
1. Mengatur Form
Pertama, Anda perlu membuat aplikasi WinForms sederhana dengan sebuah TextBox. TextBox perlu dikonfigurasi untuk menggunakan sumber autocomplete kustom.
namespace AutoComplete
{
public partial class Main : Form
{
// Membuat instance baru dari AutoCompleteStringCollection
AutoCompleteStringCollection acsc;
public Main()
{
InitializeComponent();
// Mengonfigurasi TextBox
txtMain.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtMain.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
// Menginisialisasi AutoCompleteStringCollection
acsc = new AutoCompleteStringCollection();
txtMain.AutoCompleteCustomSource = acsc;
}
}
}
2. Menangani Masukan Pengguna
Selanjutnya, kita perlu melacak masukan pengguna. Kita bisa melakukan ini dengan merespons peristiwa KeyDown
saat tombol Enter ditekan. Berikut adalah cara Anda dapat mengelola entri:
private void txtMain_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (acsc.Count < 10)
{
// Tambahkan teks saat ini ke koleksi
acsc.Add(txtMain.Text);
}
else
{
// Hapus entri tertua dan tambahkan yang baru
acsc.RemoveAt(0);
acsc.Add(txtMain.Text);
}
}
}
3. Menyimpan dan Memuat Entri
Untuk memastikan bahwa entri tidak hilang saat aplikasi ditutup, kita perlu mengimplementasikan mekanisme penyimpanan dan pemuatan.
- Menyimpan Entri: Ini terjadi di peristiwa
Main_FormClosed
di mana kita menulis entri ke dalam file.
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
using (StreamWriter sw = new StreamWriter("AutoComplete.acs"))
{
foreach (string s in acsc)
sw.WriteLine(s);
}
}
- Memuat Entri: Implementasikan ini di peristiwa
Main_Load
untuk mengisi kotak teks dengan entri sebelumnya yang disimpan dalam file.
private void Main_Load(object sender, EventArgs e)
{
if (File.Exists("AutoComplete.acs"))
{
using (StreamReader sr = new StreamReader("AutoComplete.acs"))
{
string line;
while ((line = sr.ReadLine()) != null)
{
acsc.Add(line);
}
}
}
}
Kesimpulan
Dengan mengikuti langkah-langkah ini, Anda dapat membuat kotak teks di aplikasi C# Anda yang mengingat beberapa masukan pengguna terakhir, menawarkan pengalaman yang ramah pengguna yang mengingat fitur autocomplete Google.
Panduan ini menggambarkan implementasi dasar, tetapi Anda dapat mengubah logika untuk menciptakan model yang lebih canggih sesuai kebutuhan Anda. Apakah itu menggabungkan sistem penilaian untuk entri atau menyesuaikan batas entri, kemungkinan untuk peningkatan tidak terbatas.
Jika Anda memiliki pertanyaan atau ide untuk dibagikan mengenai implementasi Anda, silakan tinggalkan komentar di bawah!