منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : اضافة Check Box في Dgv Header Cell
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : هشام المصباحي

اضافة 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]