24 | Handling Clickable Buttons in DataGridView Columns (Profile, Edit, Delete)- VB.NET & SQL Server
شرح الكود:
الكود
الذي يتم تنفيذه عند النقر على أي خلية في (DataGridView (المسمى dgv_students. يقوم
الكود بالتحقق من العمود الذي تم النقر عليه وتنفيذ إجراءات معينة بناءً على نوع
العمود.
sender: يشير إلى الكائن الذي تفاعل مع الحدث (في هذه الحالة هو dgv_students(.
e: يحتوي على معلومات حول الحدث مثل ColumnIndex و RowIndex
sender: يشير إلى الكائن الذي تفاعل مع الحدث (في هذه الحالة هو dgv_students(.e: يحتوي على معلومات حول الحدث مثل ColumnIndex و RowIndex
Private Sub dgv_students_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles
dgv_students.CellClick
cRow: يحدد رقم الصف (row) الذي تم النقر عليه فيDataGridView.
- يتم تعيين قيمة
IDمن العمود الخاص بالطالب في الصف المحدد إلىstudent_post_id. هذا يتيح لنا لاحقًا معرفة أي طالب تم النقر عليه باستخدامID
Dim cRow As Integer = dgv_students.CurrentRow.Index
student_post_id = Nothing
student_post_id = dgv_students.Rows(cRow).Cells("ID").Value
- التحقق من العمود "profile":
- إذا كان العمود الذي تم النقر عليه هو
profile(الذي يحتوي على زر لفتح ملف الطالب)، يتم تنفيذ الكود التالي:
form_profile: يتم تعيينه إلى قيمة "Students List".
frm_st_profile.Show(): يتم عرض النموذجfrm_st_profileالذي يحتوي على تفاصيل ملف الطالب.
Me.Close(): يتم إغلاق النموذج الحالي (في هذه الحالةStudents List.(
Return: يوقف التنفيذ ويخرج من الدالة إذا تم النقر على هذا الزر.
If dgv_students.Columns(cColumn).Name = "profile" Then
form_profile = "Students
List"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
frm_st_profile.Show()
Me.Close()
Return
End If
If dgv_students.Columns(cColumn).Name = "profile" Then
form_profile = "Students
List"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
frm_st_profile.Show()
Me.Close()
Return
End If
- التحقق من العمود "edit":
- إذا كان العمود الذي تم النقر عليه هو
edit(الذي يحتوي على زر التعديل)، يتم تنفيذ الكود التالي:
form_add: يتم تعيينه إلى "Students List - edit".
Me.Enabled = False: يتم تعطيل النموذج الحالي لكي لا يتمكن المستخدم من التفاعل
frm_Register_New_Student.Show(): يتم عرض نموذجfrm_Register_New_Studentالذي
Return: يوقف التنفيذ ويخرج من الدالة إذا تم النقر على هذا الزر.
If dgv_students.Columns(cColumn).Name = "edit" Then
form_add = "Students List - edit"
student_post_id = dgv_students.Rows(cRow).Cells("ID").Value
Me.Enabled = False
frm_Register_New_Student.Show()
Return
End If
الخلاصة:
- يتم التعامل مع حدث النقر على الخلايا في
DataGridViewلتحديد ما إذا كان المستخدم قد نقر على زر "الملف الشخصي" أو "تعديل".
- إذا تم النقر على "الملف الشخصي"، يتم فتح نموذج عرض تفاصيل الطالب (ملف الطالب) وإغلاق النموذج الحالي.
- إذا تم النقر على "تعديل"، يتم فتح نموذج تعديل بيانات الطالب مع تعطيل النموذج الحالي لتجنب التفاعل معه أثناء التعديل.
الكود كاملا داخل حدث - dgv_students_CellClick
Private Sub
dgv_students_CellClick(sender As Object, e As DataGridViewCellEventArgs)
Handles
dgv_students.CellClick
Dim cRow As Integer =
dgv_students.CurrentRow.Index
student_post_id = Nothing
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
'MsgBox(student_post_id)
Dim cColumn As Integer =
e.ColumnIndex
If dgv_students.Columns(cColumn).Name = "profile" Then
form_profile = "Students
List"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
frm_st_profile.Show()
Me.Close()
Return
End If
If dgv_students.Columns(cColumn).Name = "edit" Then
form_add = "Students
List - edit"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
Me.Enabled = False
frm_Register_New_Student.Show()
Return
End
If
End
Sub
Private Sub dgv_students_CellClick(sender As Object, e As DataGridViewCellEventArgs)
Handles dgv_students.CellClick
Dim cRow As Integer =
dgv_students.CurrentRow.Index
student_post_id = Nothing
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
'MsgBox(student_post_id)
Dim cColumn As Integer =
e.ColumnIndex
If dgv_students.Columns(cColumn).Name = "profile" Then
form_profile = "Students
List"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
frm_st_profile.Show()
Me.Close()
Return
End If
If dgv_students.Columns(cColumn).Name = "edit" Then
form_add = "Students
List - edit"
student_post_id =
dgv_students.Rows(cRow).Cells("ID").Value
Me.Enabled = False
frm_Register_New_Student.Show()
Return
End
If
End
Sub
إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مزيد من التوضيح، فلا تتردد في طرحها!

تعليقات
إرسال تعليق