C# WinForms’da Google Suggestish Metin Kutusu Oluşturma
C# WinForms uygulamanızda kullanıcı girişlerini Google gibi hatırlayan akıllı bir metin kutusu uygulamak ister misiniz? Genellikle otomatik tamamlama özelliği olarak adlandırılan bu işlevsellik, sadece kullanıcı deneyimini artırmakla kalmaz, aynı zamanda uygulamanızı kullanıcı davranışına daha uyumlu hale getirir. Bu blog yazısında, son x girişini hatırlayan bir Google Suggestish
metin kutusu nasıl oluşturacağınızı adım adım göstereceğiz; bu sayede kullanıcılarınız için verimlilik ve kolaylık sağlanacaktır.
Problem
C# ile bağımsız bir uygulama geliştirirken, kullanıcı girdilerini sürekli olarak hatırlamanın etkili bir yolunu bulmak zorlayıcı olabilir. Kullanıcılar, özellikle formlar veya arama alanlarında, son girdilerinin hızlı şekilde seçilebilir olmasını beklerler. Amaç açıktır: Uygulama kapatıldıktan sonra bile son birkaç girişi saklayabilen bir metin kutusu oluşturmak.
Çözüm
İyi haber şu ki, bu özelliği uygulamak oldukça basittir! Otomatik tamamlama özelliğimizi yönetmek için System.Windows.Forms
ad alanından AutoCompleteStringCollection
‘ı kullanacağız. Ayrıca, girişleri kalıcı hale getirmek için bir metin dosyasına kaydedeceğiz.
Adım Adım Rehber
Uygulamayı yönetilebilir parçalara ayıralım.
1. Formun Kurulumu
Öncelikle, bir TextBox ile basit bir WinForms uygulaması oluşturmalısınız. TextBox, özel otomatik tamamlama kaynağını kullanacak şekilde yapılandırılmalıdır.
namespace AutoComplete
{
public partial class Main : Form
{
// AutoCompleteStringCollection'ın yeni bir örneğini oluşturma
AutoCompleteStringCollection acsc;
public Main()
{
InitializeComponent();
// TextBox'u yapılandırma
txtMain.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtMain.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
// AutoCompleteStringCollection'ı başlatma
acsc = new AutoCompleteStringCollection();
txtMain.AutoCompleteCustomSource = acsc;
}
}
}
2. Kullanıcı Girişlerini Yönetme
Sonraki adım, kullanıcı girdilerini takip etmektir. Bunun için Enter tuşuna basıldığında KeyDown
olayına yanıt verebiliriz. Girişleri yönetmenin yolu şöyle:
private void txtMain_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (acsc.Count < 10)
{
// Mevcut metni koleksiyona ekle
acsc.Add(txtMain.Text);
}
else
{
// En eski girişi kaldır ve yenisini ekle
acsc.RemoveAt(0);
acsc.Add(txtMain.Text);
}
}
}
3. Girişlerin Kaydedilmesi ve Yüklenmesi
Girişlerin uygulama kapatıldığında kaybolmamasını sağlamak için, kaydetme ve yükleme mekanizmaları uygulamamız gerekecek.
- Girişleri Kaydetme: Girişleri bir dosyaya yazdığımız
Main_FormClosed
olayında gerçekleşir.
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
using (StreamWriter sw = new StreamWriter("AutoComplete.acs"))
{
foreach (string s in acsc)
sw.WriteLine(s);
}
}
- Girişleri Yükleme: Bu işlemi
Main_Load
olayında, metin kutusunu dosyada saklanan önceki girişlerle doldurmak için gerçekleştirin.
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);
}
}
}
}
Sonuç
Bu adımları izleyerek, C# uygulamanızda son birkaç kullanıcı girdisini hatırlayan bir metin kutusu oluşturabilirsiniz; böylece kullanıcı dostu bir deneyim sunarak Google’ın otomatik tamamlama özelliğini andıran bir uygulama elde edersiniz.
Bu kılavuz, temel bir uygulamayı göstermektedir ancak mantığı istediğiniz gibi değiştirerek daha gelişmiş bir model yaratmaktan çekinmeyin. Girişler için bir değerlendirme sistemi eklemek veya giriş sınırlarını özelleştirmek gibi iyileştirmeye yönelik sonsuz fırsatlar vardır.
Uygulamanızla ilgili herhangi bir sorunuz veya paylaşmak istediğiniz fikirler varsa, lütfen aşağıda bir yorum bırakın!