Home > Mobile >  Add CheckBox To DataGridView Cell Programmatically
Add CheckBox To DataGridView Cell Programmatically

Time:11-15

I’m trying to add a CheckBox programmatically to a DataGridVew cell if the cell next to it has a value of “1”. I’m trying to do this as the rows are added

I’m hoping someone can help me out with the correct code here. I understand one of the lines of code is incorrect but I’ve put it in to illustrate what I'm trying to do.

Thanks in advance.

    Private Sub Controls_DGV_RowsAdded(sender As Object, e As Windows.Forms.DataGridViewRowsAddedEventArgs) Handles Controls_DGV.RowsAdded

        If Controls_DGV.Rows(e.RowIndex).Cells(2).Value = "1" Then
            Controls_DGV.Rows(e.RowIndex).Cells(1).AddCheckBox ' THIS LINE IS INCORRECT
        End If

    End Sub

CodePudding user response:

The column number 1 that you want to display a checkbox should already be of type DataGridViewCheckBoxColumn and then if the value is not "1" you can transform the type of the cell for a DataGridViewTextBoxCell, so there is no checkbox and you can even put there some text if you want. Because you're using 3 columns, i'll try to do the same.

In your Form1_Load() you should have something like this if you are adding columns programmatically:

    Dim ChkBox As New DataGridViewCheckBoxColumn
    Controls_DGV.Columns.Add("TextBox1", "TextBox1")
    Controls_DGV.Columns.Add(ChkBox)
    Controls_DGV.Columns.Add("TextBox2", "TextBox2")

Then using your code it should be like this:

    Private Sub Controls_DGV_RowsAdded(sender As Object, e As Windows.Forms.DataGridViewRowsAddedEventArgs) Handles Controls_DGV.RowsAdded

        If Controls_DGV.Rows(e.RowIndex).Cells(2).Value <> "1" Then
             ' replace the checkbox cell by textbox cell
             Controls_DGV.Rows(e.RowIndex).Cells(1) = New DataGridViewTextBoxCell()
             Controls_DGV.Rows(e.RowIndex).Cells(1).Value = "(empty or some text)"
        End If
    End Sub

CodePudding user response:

This is the same as @miguel except for the checking the value, in this case enter image description here

  • Related