שתף באמצעות


Uncommitted new row cannot be deleted.

Question

Tuesday, December 11, 2012 6:27 AM

Hi

i get this error when i remove rows

 If dgv.Rows.Count > 0 Then
                    If Me.dgv.Rows(0).IsNewRow Then
                        Me.dgv.Rows.RemoveAt(0)

                    End If

                End If

and before i added 3 controls to datagrid by using its columns collection property.

and in btnadd click event  these columns wil visible and in btncancel these column will be visible false

Here i want to remove all rows from  datagrid even i did visible =false , columns are disappering but datagrid is not empty its showing small rows without columns.

 If Emty_Mode = True Then  'btncancel
                .AutoGenerateColumns = True
                '.Columns(0).Width = 200
                '.Columns(0).HeaderText = "Product Name"
                .Columns(0).Visible = False 'FixCoolumns

                .Columns(1).Visible = False
                '.Columns(1).Width = 60
                '.Columns(1).HeaderText = "Period"

                .Columns(2).Visible = False
                '.Columns(2).Width = 60
                .Columns(2).HeaderText = "Rate"

                Me.dgv.DataSource = Nothing
                Me.dgv.Refresh()
                Me.dgv.Rows.Clear()
                If dgv.Rows.Count > 0 Then
                    If Me.dgv.Rows(0).IsNewRow Then
                        Me.dgv.Rows.RemoveAt(0)
                    End If
                End If
            Else 'BtnAdd
                'Clear Bound COlumns and Display Fixed Columns

                Me.dgv.DataSource = Nothing
                Me.dgv.Refresh()
                Me.dgv.Rows.Clear()
                              ' 
                'Display Fixed Columns
                .AutoGenerateColumns = True
                .Columns(0).Visible = True
                .Columns(0).Width = 200
                .Columns(0).HeaderText = "Product Name"
                .Columns(1).Visible = True
                .Columns(1).Width = 60
                .Columns(1).HeaderText = "Period"
                .Columns(2).Visible = True
                .Columns(2).Width = 60
                .Columns(2).HeaderText = "Rate"
ENd if

adil

All replies (1)

Tuesday, December 11, 2012 7:14 AM ✅Answered | 1 vote

Maybe you want this:

Option Strict On
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.ColumnCount = 10
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Select Case DataGridView1.AllowUserToAddRows
            Case True
                DataGridView1.AllowUserToAddRows = False
            Case Else
                DataGridView1.AllowUserToAddRows = True
        End Select
    End Sub
End Class

Or more simply:

Option Strict On
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.ColumnCount = 10
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.AllowUserToAddRows = Not DataGridView1.AllowUserToAddRows
    End Sub
End Class

If you want something you've never had, you need to do something you've never done.

Everyone should take the time to mark helpful posts and propose answers!

Answer an interesting question?
Create a wiki article about it!

My Technet Wiki Articles