انشاء صندوق نصي Google Suggestish في C# WinForms
هل تود يومًا تنفيذ صندوق نصي ذكي في تطبيق C# WinForms الخاص بك يسترجع إدخالات المستخدم مثل Google؟ هذه الوظيفة، التي يشار إليها غالبًا على أنها ميزة الإكمال التلقائي، لا تعزز تجربة المستخدم فحسب، بل تجعل تطبيقك أكثر تكيفًا مع سلوك المستخدم. في هذه المقالة، سنستعرض كيفية إنشاء صندوق نصي Google Suggestish
يتذكر عددًا من الإدخالات السابقة x، مما يضمن الكفاءة والراحة لمستخدميك.
المشكلة
عند تطوير تطبيق مستقل في C#، قد يكون من الصعب العثور على طريقة فعالة لتذكر إدخالات المستخدم باستمرار. يتوقع المستخدمون تجربة سلسة حيث تكون إدخالاتهم الأخيرة متاحة للاختيار السريع، خاصة في النماذج أو حقول البحث. الهدف واضح: إنشاء صندوق نصي يحتفظ بعدد قليل من الإدخالات حتى بعد إغلاق التطبيق.
الحل
الخبر الجيد هو أن تنفيذ هذه الميزة بسيط للغاية! سنستخدم AutoCompleteStringCollection
من مساحة أسماء System.Windows.Forms
لإدارة ميزة الإكمال التلقائي لدينا. علاوة على ذلك، سنقوم بحفظ الإدخال في ملف نصي لجعل الإدخالات دائمة عبر الجلسات.
دليل خطوة بخطوة
دعونا نقسم التنفيذ إلى أجزاء يمكن التعامل معها.
1. إعداد النموذج
أولاً، تحتاج إلى إنشاء تطبيق WinForms بسيط يحتوي على TextBox. يحتاج TextBox إلى تكوينه لاستخدام مصدر إكمال تلقائي مخصص.
namespace AutoComplete
{
public partial class Main : Form
{
// إنشاء مثيل جديد من AutoCompleteStringCollection
AutoCompleteStringCollection acsc;
public Main()
{
InitializeComponent();
// تكوين TextBox
txtMain.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtMain.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
// تهيئة AutoCompleteStringCollection
acsc = new AutoCompleteStringCollection();
txtMain.AutoCompleteCustomSource = acsc;
}
}
}
2. التعامل مع إدخال المستخدم
بعد ذلك، نحتاج إلى تتبع إدخالات المستخدم. يمكننا القيام بذلك من خلال الاستجابة لحدث KeyDown
عندما يتم الضغط على مفتاح Enter. إليك كيفية إدارة الإدخالات:
private void txtMain_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (acsc.Count < 10)
{
// إضافة النص الحالي إلى المجموعة
acsc.Add(txtMain.Text);
}
else
{
// إزالة الإدخال الأقدم وإضافة الجديد
acsc.RemoveAt(0);
acsc.Add(txtMain.Text);
}
}
}
3. حفظ وتحميل الإدخالات
لضمان عدم فقدان الإدخالات عند إغلاق التطبيق، نحتاج إلى تنفيذ آليات الحفظ والتحميل.
- حفظ الإدخالات: يتم ذلك في حدث
Main_FormClosed
حيث نكتب الإدخالات إلى ملف.
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
using (StreamWriter sw = new StreamWriter("AutoComplete.acs"))
{
foreach (string s in acsc)
sw.WriteLine(s);
}
}
- تحميل الإدخالات: نفذ هذا في حدث
Main_Load
لملء صندوق النص بالإدخالات السابقة المخزنة في الملف.
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);
}
}
}
}
الخاتمة
من خلال اتباع هذه الخطوات، يمكنك إنشاء صندوق نصي في تطبيق C# الخاص بك يتذكر آخر عدد من إدخالات المستخدم، مما يتيح تجربة مستخدم ودية تذكرنا بميزة الإكمال التلقائي في Google.
توضح هذه الدليل تنفيذًا أساسيًا، ولكن لا تتردد في تعديل المنطق لإنشاء نموذج أكثر تعقيدًا وفقًا لاحتياجاتك. سواء كنت تتضمن نظام تقييم للإدخالات أو تخصيص حدود الإدخال، فإن إمكانيات التحسين لا حصر لها.
إذا كان لديك أي أسئلة أو أفكار تود مشاركتها بخصوص تنفيذك، يرجى ترك تعليق أدناه!