البرمجة

تعديل بيانات الأشخاص في C#

باستخدام لغة البرمجة، يمكن تحقيق ما تريده بسهولة. في هذه الحالة، تريد إنشاء واجهة تفاعلية تمكن المستخدم من تعديل بيانات في القائمة List بواسطة مربعات النص التي تم إنشاؤها ديناميكياً.

لنفترض أنك تستخدم C# لبرمجة هذا السيناريو. لإنشاء الواجهة، ستحتاج إلى مكونات التحكم المناسبة وتعيين الأحداث المناسبة. في الحالة الحالية، تحتاج إلى إنشاء مربعات نص لكل مدخل في القائمة people، وربط كل مربع نص بخاصية محددة في كل عنصر في القائمة.

في البداية، يمكنك إنشاء مربعات النص بحسب حجم القائمة. على سبيل المثال، إذا كانت القائمة people تحتوي على عناصر محددة مثل الاسم واللقب والعمر، يجب عليك إنشاء مربعات نص بعدد محدد يتوافق مع عدد العناصر في القائمة.

ثم، تحتاج إلى تعيين قيم كل مربع نص بقيمة محددة من القائمة people. يمكنك القيام بذلك بتكرار عناصر القائمة وتعيين قيم المربعات النصية وفقًا لهذه العناصر.

وبالنسبة للأحداث، يجب أن تنشئ حدثًا TextChanged لكل مربع نص. عند حدوث التغيير في أي من مربعات النص، يجب أن يتم تحديث القيمة المناسبة في القائمة people.

إليك مثالًا على كيفية تنفيذ هذا باستخدام C#:

csharp
// تكوين قائمة الأشخاص List people = new List(); // إضافة عناصر إلى القائمة people.Add(new Person { Name = "John", Surname = "Johnson", Age = 25 }); people.Add(new Person { Name = "Jack", Surname = "Jackson", Age = 30 }); // إنشاء مربعات النص وتعيين القيم الافتراضية for (int i = 0; i < people.Count; i++) { TextBox txtName = new TextBox(); txtName.Name = "txtName" + i; txtName.Text = people[i].Name; txtName.TextChanged += TxtName_TextChanged; // قم بإضافة txtName إلى Panel الخاص بك هنا // مثلاً: panel.Controls.Add(txtName); TextBox txtSurname = new TextBox(); txtSurname.Name = "txtSurname" + i; txtSurname.Text = people[i].Surname; txtSurname.TextChanged += TxtSurname_TextChanged; // قم بإضافة txtSurname إلى Panel الخاص بك هنا TextBox txtAge = new TextBox(); txtAge.Name = "txtAge" + i; txtAge.Text = people[i].Age.ToString(); txtAge.TextChanged += TxtAge_TextChanged; // قم بإضافة txtAge إلى Panel الخاص بك هنا } // حدث TextChanged لمربع النص الذي يحمل الاسم private void TxtName_TextChanged(object sender, EventArgs e) { TextBox txtBox = (TextBox)sender; int index = int.Parse(txtBox.Name.Replace("txtName", "")); people[index].Name = txtBox.Text; } // حدث TextChanged لمربع النص الذي يحمل اللقب private void TxtSurname_TextChanged(object sender, EventArgs e) { TextBox txtBox = (TextBox)sender; int index = int.Parse(txtBox.Name.Replace("txtSurname", "")); people[index].Surname = txtBox.Text; } // حدث TextChanged لمربع النص الذي يحمل العمر private void TxtAge_TextChanged(object sender, EventArgs e) { TextBox txtBox = (TextBox)sender; int index = int.Parse(txtBox.Name.Replace("txtAge", "")); int age; if (int.TryParse(txtBox.Text, out age)) { people[index].Age = age; } }

هذا مثال بسيط يوضح كيفية تحقيق هذا السيناريو باستخدام C# وWindows Forms. يمكنك تطوير هذا المثال وفقًا لاحتياجاتك ولغة البرمجة التي تستخدمها.

المزيد من المعلومات

بالطبع، سأزودك بمزيد من المعلومات لتوسيع فهمك لكيفية تنفيذ هذا السيناريو.

  1. إنشاء فئة Person:
    قبل البدء في الاستخدام الفعلي لقائمة الأشخاص، يجب عليك إنشاء فئة تمثل الشخص. في هذه الحالة، سنفترض وجود فئة تسمى Person تحتوي على خصائص الاسم، اللقب، والعمر. يمكن تعريف هذه الفئة كالتالي:
csharp
public class Person { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } }
  1. إنشاء وتعبئة قائمة الأشخاص:
    بعد تعريف فئة Person، يمكنك إنشاء قائمة من الأشخاص وتعبئتها بالبيانات المطلوبة. يمكنك القيام بذلك في أي مكان مناسب في التطبيق، مثل الحدث Load للنموذج أو دالة البدء. في هذا المثال، قمنا بإنشاء قائمة List وتعبئتها ببعض البيانات كمثال:
csharp
List people = new List(); people.Add(new Person { Name = "John", Surname = "Johnson", Age = 25 }); people.Add(new Person { Name = "Jack", Surname = "Jackson", Age = 30 });
  1. إنشاء مربعات النص:
    بعد إنشاء القائمة وتعبئتها بالبيانات، يجب عرض هذه البيانات في واجهة المستخدم. يمكنك استخدام مكونات التحكم TextBox لعرض البيانات والسماح للمستخدم بتعديلها. في هذا المثال، نقوم بإنشاء وإعداد مربعات النص ديناميكياً وربطها بالبيانات في القائمة:
csharp
for (int i = 0; i < people.Count; i++) { TextBox txtName = new TextBox(); txtName.Name = "txtName" + i; txtName.Text = people[i].Name; txtName.TextChanged += TxtName_TextChanged; // إضافة txtName إلى Panel الخاص بك TextBox txtSurname = new TextBox(); txtSurname.Name = "txtSurname" + i; txtSurname.Text = people[i].Surname; txtSurname.TextChanged += TxtSurname_TextChanged; // إضافة txtSurname إلى Panel الخاص بك TextBox txtAge = new TextBox(); txtAge.Name = "txtAge" + i; txtAge.Text = people[i].Age.ToString(); txtAge.TextChanged += TxtAge_TextChanged; // إضافة txtAge إلى Panel الخاص بك }
  1. تحديث البيانات عند تغيير مربع النص:
    أخيرًا، عندما يقوم المستخدم بتغيير قيمة أي مربع نص، يجب تحديث البيانات في القائمة people بشكل مناسب. يمكنك تحقيق هذا بتعيين حدث TextChanged لكل مربع نص وتحديث القيم المناسبة في القائمة بناءً على التغيير. في المثال أعلاه، لقد قمنا بتعريف حدث TextChanged لكل مربع نص وتحديث القيم المناسبة في القائمة people.

هذه هي الخطوات الأساسية لتحقيق هذا السيناريو. باستخدام هذا الإطار، يمكنك بناء تطبيق تفاعلي يمكن المستخدم فيه من تعديل البيانات بسهولة. تذكر دائمًا أن تتبع أفضل الممارسات في برمجة الواجهات لضمان سلاسة التجربة للمستخدمين وكفاءة التطبيق.

زر الذهاب إلى الأعلى