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
إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مزيد من التوضيح، فلا تتردد في طرحها!
تعليقات
إرسال تعليق