بحث – صندوق بحث ديناميكي في تطبيق ويندوز فورم بلغة C#
إن تصميم تطبيقات سطح المكتب بلغة C# يمكن أن يكون له تأثير كبير في تحسين تجربة المستخدم. من بين الوظائف المهمة التي يمكن تضمينها في هذه التطبيقات هي إضافة مربع بحث ديناميكي. يتيح هذا المربع للمستخدمين العثور بسرعة على المعلومات التي يحتاجون إليها. سنستعرض في هذا المقال كيفية إنشاء مربع بحث ديناميكي في تطبيق Windows Form باستخدام C#، مع التركيز على استخدام قاعدة بيانات تحتوي على العديد من الصفوف.
مفهوم مربع البحث الديناميكي
مربع البحث الديناميكي هو عنصر يتيح للمستخدمين إدخال نص والعثور على اقتراحات ملائمة بناءً على ما يقومون بكتابته. يتطلب الأمر تفاعلًا سريعًا مع قاعدة البيانات لتوفير الاقتراحات المناسبة في الوقت الفعلي. هذا يعني أنه عندما يكتب المستخدم في مربع البحث، يتم تحديث الخيارات تلقائيًا لتمكينه من تحديد الخيارات التي تناسب احتياجاته بشكل أفضل.
إنشاء نموذج يحتوي على مربع بحث ديناميكي
للبدء في إنشاء نموذج يحتوي على مربع بحث ديناميكي في تطبيق C# Windows Form، نحتاج أولاً إلى تصميم واجهة المستخدم. يجب أن يحتوي النموذج على مربع نص للبحث ومربع تحرير وسرد (ComboBox) لعرض الاقتراحات. يمكن استخدام قاعدة بيانات تحتوي على جدول يشمل بيانات البحث.
يمكن استخدام الكود التالي لإنشاء وظيفة تغيير نص مربع التحرير والسرد. هذا الكود سيتفاعل مع بيانات القاعدة ويظهر الاقتراحات:
private void comboBoxSearch_TextChanged(object sender, EventArgs e)
{
string searchTerm = comboBoxSearch.Text.Trim();
if (!string.IsNullOrEmpty(searchTerm))
{
var suggestions = GetSearchSuggestions(searchTerm);
comboBoxSearch.Items.Clear();
comboBoxSearch.Items.AddRange(suggestions.ToArray());
}
else
{
comboBoxSearch.Items.Clear();
}
}
private List<string> GetSearchSuggestions(string term)
{
List<string> suggestions = new List<string>();
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT * FROM Material WHERE MaterialName LIKE @SearchTerm";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@SearchTerm", "%" + term + "%");
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
suggestions.Add(reader["MaterialName"].ToString());
}
connection.Close();
}
}
return suggestions;
}
شرح الكود
في الكود أعلاه، نبدأ بمعالجة حدث تغيير النص في مربع تحرير السرد. نتحقق مما إذا كان النص المدخل غير فارغ، ثم نستدعي الدالة GetSearchSuggestions
للحصول على الاقتراحات من قاعدة البيانات.
تقوم الدالة GetSearchSuggestions
بإنشاء اتصال بقاعدة البيانات، ثم تنفذ استعلامًا SQL لجلب البيانات المطابقة للنص المدخل. يتم استخدام معنونة السلسلة مثل LIKE
لتعزيز القدرة على البحث، مما يساعد في العثور على كل المواد التي تحتوي على النص الذي أدخله المستخدم.
عرض النتائج للمستخدم
بعد استرداد الاقتراحات، يتم إضافتها إلى مربع تحرير السرد، وبالتالي يظهر للمستخدم قائمة بالخيارات المحتملة. إذا لم يكن هناك نص مدخل، نقوم بمسح القائمة لإزالة أي اقتراحات سابقة.
تساعد هذه الوظيفة الديناميكية في تحسين تجربة المستخدم، حيث يتمكن من رؤية الخيارات بشكل فوري أثناء الكتابة، مما يسهل عليه عملية البحث عن المعلومات.
الخاتمة
إن دمج مربع بحث ديناميكي في تطبيقات C# Windows Form يعد استراتيجية فعالة لتحسين تفاعل المستخدم مع البيانات. باستخدام الكود الموضح، يمكن للمطورين إنشاء تجربة بحث سلسة تقدم اقتراحات مباشرة بناءً على إدخال المستخدم. بهذه الطريقة، يمكن تسهيل الوصول إلى المعلومات الهامة، مما يعزز من فاعلية التطبيقات المستخدمين.
بهذا المقال، تناولنا مفهوم صندوق البحث الديناميكي في C# وأهميته، كما قدمنا خطوات عملية لإنشائه. نأمل أن تجد هذه المعلومات مفيدة في تطوير تطبيقاتك الخاصة.