none
奇怪的datagridview控件只要编辑最后一行就新增一行 RRS feed

  • 问题

  • 我用的是.net 3.5环境,在窗口中添加了一个datagridview控件,然后在窗口的 Form1_Load中给这个datagridview控件初始化:

    Public Class Form1
    
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.RowHeadersVisible = False '表格行头隐藏
        Dim Column1 As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn
        Me.DataGridView1.Columns.Add(Column1)
    
        For tempColumns As Integer = 1 To 6 Step 1
          DataGridView1.Columns.Insert(DataGridView1.Columns.Count, New DataGridViewTextBoxColumn) '在DataGridView 的最後一行插入一個DataGridViewCheckBoxColumn
        Next
    
        DataGridView1.RowCount = 4
    
        DataGridView1.Columns(0).HeaderText = "A" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(1).HeaderText = "B" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(2).HeaderText = "C" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(3).HeaderText = "D" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(4).HeaderText = "E" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(5).HeaderText = "F" '获取或设置列标题单元格的标题文本。
        DataGridView1.Columns(6).HeaderText = "G" '获取或设置列标题单元格的标题文本。
    
        DataGridView1.AllowUserToResizeColumns = False '获取或设置一个值,该值指示用户是否可以调整列的大小。
        DataGridView1.AllowUserToResizeRows = False '获取或设置一个值,该值指示用户是否可以调整行的大小。
    
        For i As Integer = 0 To 6
          DataGridView1.Columns(i).SortMode = DataGridViewColumnSortMode.NotSortable '此列仅能以编程方式进行排序,但由于它原本并不打算排序,所以列标头将不包含排序标志符号的空间。
          DataGridView1.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter '该列中单元格的默认样式,内容与单元格的垂直和水平中心对齐。
          DataGridView1.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter '表示列的标题单元格,内容与单元格的垂直和水平中心对齐。
        Next
    
        DataGridView1.Columns(0).Width = 30 '按照指定值调整列宽
        DataGridView1.Columns(1).Width = 30
        DataGridView1.Columns(2).Width = 30
        DataGridView1.Columns(3).Width = 30
        DataGridView1.Columns(4).Width = 30
        DataGridView1.Columns(5).Width = 30
        DataGridView1.Columns(6).Width = 30
        For i As Integer = 0 To 3
          DataGridView1(1, i).Value = i + 1
        Next
      End Sub
    End Class
    
    


    运行这个程序时发现在编辑datagridview的最后一行的任意单元格会在末尾添加一个新行,如此反复,请问如何解决这个问题?


    myriceme
    2011年6月14日 5:42

答案