تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اضافة Check Box في Dgv Header Cell
#1
كاتب الموضوع : هشام المصباحي

اضافة CheckBox في Datagridview Header Cell

والفائدة تكمن عندما تقوم بالنقر على ال CheckBox يتم تحديد كل الخلايا في ال Datagridview

انظر الصورة التالية :





درس بسيط نقلته وقمت بالتعديل عليه ليكون سهل ومفهوم للجميع انشاء الله


لتحميل المثال انقر هنا


او افتح مشروع جديد واللصق الكود التالي



كود :
[color=#000000][COLOR=#007700]Public Class [/color][COLOR=#0000bb]Form1



    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Form1_Load[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles MyBase[/color][color=#007700].[/color][COLOR=#0000bb]Load

        [/COLOR][COLOR=#dd0000]'Add Items
        dgvSelectAll.Rows.Add()
        dgvSelectAll.Rows.Add()
        dgvSelectAll.Rows.Add()

        dgvSelectAll.Item(1, 0).Value = "Hisham"
        dgvSelectAll.Item(1, 1).Value = "Ali"
        dgvSelectAll.Item(1, 2).Value = "Ahmed"


        AddHeaderCheckBox()

    End Sub

    Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgvSelectAll.CellPainting

        If e.RowIndex = -1 AndAlso e.ColumnIndex = 0 Then
            ResetHeaderCheckBoxLocation(e.ColumnIndex, e.RowIndex)
        End If
    End Sub

    Private Sub ResetHeaderCheckBoxLocation(ByVal ColumnIndex As Integer, ByVal RowIndex As Integer)
        '[/COLOR][COLOR=#0000bb]Get the column header cell bounds
        Dim oRectangle [/COLOR][color=#007700]As [/color][color=#0000bb]Rectangle [/color][color=#007700]= [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]dgvSelectAll[/color][color=#007700].[/color][color=#0000bb]GetCellDisplayRectangle[/color][color=#007700]([/color][color=#0000bb]ColumnIndex[/color][color=#007700], [/color][color=#0000bb]RowIndex[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])

        [/COLOR][color=#0000bb]Dim oPoint [/color][color=#007700]As New [/color][color=#0000bb]Point[/color][COLOR=#007700]()

        [/COLOR][color=#0000bb]oPoint[/color][color=#007700].[/color][color=#0000bb]X [/color][color=#007700]= [/color][color=#0000bb]oRectangle[/color][color=#007700].[/color][color=#0000bb]Location[/color][color=#007700].[/color][color=#0000bb]X [/color][color=#007700]+ ([/color][color=#0000bb]oRectangle[/color][color=#007700].[/color][color=#0000bb]Width [/color][color=#007700]- [/color][color=#0000bb]HeaderCheckBox[/color][color=#007700].[/color][color=#0000bb]Width[/color][color=#007700]) / [/color][color=#0000bb]2 [/color][color=#007700]+ [/color][COLOR=#0000bb]1
        oPoint[/COLOR][color=#007700].[/color][color=#0000bb]Y [/color][color=#007700]= [/color][color=#0000bb]oRectangle[/color][color=#007700].[/color][color=#0000bb]Location[/color][color=#007700].[/color][color=#0000bb]Y [/color][color=#007700]+ ([/color][color=#0000bb]oRectangle[/color][color=#007700].[/color][color=#0000bb]Height [/color][color=#007700]- [/color][color=#0000bb]HeaderCheckBox[/color][color=#007700].[/color][color=#0000bb]Height[/color][color=#007700]) / [/color][color=#0000bb]2 [/color][color=#007700]+ [/color][COLOR=#0000bb]1

        [/COLOR][COLOR=#dd0000]'Change the location of the CheckBox to make it stay on the header
        HeaderCheckBox.Location = oPoint
    End Sub
    Private Sub AddHeaderCheckBox()
        HeaderCheckBox = New CheckBox()

        HeaderCheckBox.Size = New Size(15, 15)

        '[/COLOR][COLOR=#0000bb]Add the CheckBox into the DataGridView
        Me[/COLOR][color=#007700].[/color][color=#0000bb]dgvSelectAll[/color][color=#007700].[/color][color=#0000bb]Controls[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#0000bb]HeaderCheckBox[/color][COLOR=#007700])
    [/COLOR][COLOR=#0000bb]End Sub
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub HeaderCheckBox_CheckedChanged[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles HeaderCheckBox[/color][color=#007700].[/color][COLOR=#0000bb]CheckedChanged
        [/COLOR][color=#007700]For [/color][color=#0000bb]i [/color][color=#007700]= [/color][color=#0000bb]0 To dgvSelectAll[/color][color=#007700].[/color][color=#0000bb]Rows[/color][color=#007700].[/color][color=#0000bb]Count [/color][color=#007700]- [/color][COLOR=#0000bb]2
            dgvSelectAll[/COLOR][color=#007700].[/color][color=#0000bb]Item[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]i[/color][color=#007700]).[/color][color=#0000bb]Value [/color][color=#007700]= [/color][color=#0000bb]HeaderCheckBox[/color][color=#007700].[/color][COLOR=#0000bb]Checked
        Next
    End Sub


End [/COLOR][COLOR=#007700]Class  
[/COLOR][/COLOR]

}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 20 9,121 26-09-16, 08:12 AM
آخر رد: abumuhannadzym
  [مقال] Check the file format of an Image silverlight 3 896 28-05-14, 05:02 PM
آخر رد: Sajad
  شرح اضافة ملف فيديو للريسورس + تشغيله عن طريق البوتون--شرح مصور RaggiTech 0 567 05-10-12, 10:27 AM
آخر رد: RaggiTech
  الحلقة العاشرة من السلسلة 167 - اضافة المخطط (Chart) الى التقرير RaggiTech 0 471 02-10-12, 04:31 PM
آخر رد: RaggiTech
  اضافة الدرع لازرار التطبيق بالكود (زر مدير نظام ) RaggiTech 0 325 02-10-12, 02:05 AM
آخر رد: RaggiTech
  اضافة Button in Grid مع امكانية عمل Enabel True-False RaggiTech 0 306 02-10-12, 01:55 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم