2016-04-15 69 views
0

我正在使用vb.Net。 在网格视图中每个都有两个按钮像+和 - 如果用户单击+然后一行需要添加在最后的位置,如果用户单击 - 然后一行需要从当前位置删除如何在最后位置添加行并从当前位置删除行在VB.net中的DataGridview中

我试着下面的代码,但它会给我一个错误

Private count As Integer = 1 
    Private Sub dgvSourcePath_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvSourcePath.CellContentClick 
     If e.ColumnIndex = 2 Then 
      dgvSourcePath.Rows.Insert(count) 
     End If 
     If e.ColumnIndex = 3 Then 
      count -= 1 
      dgvSourcePath.Rows.RemoveAt(count) 
     End If 
     If e.ColumnIndex = 1 Then 
      OpenSourceFileDialog.ShowDialog() 
      If Windows.Forms.DialogResult.OK Then 
       dgvSourcePath.CurrentRow.Cells(0).Value = OpenSourceFileDialog.FileName 
      End If 
     End If 
     dgvSourcePath.Refresh() 
    End Sub 
+0

请正确格式化你的代码。 – James

+0

啧啧,如果只有某种方式,我们可以找出错误信息是什么以及错误发生在哪一行。 – jmcilhinney

+0

'CellContentClick'事件为您提供被点击的行的索引。删除一行时应该使用该索引。至于添加,为什么在'Add'时使用'Insert'专门添加到集合的末尾? – jmcilhinney

回答

0

请试试这个:

 Private Sub dgvdatos_CellContentClick(sender As DataGridView, e As DataGridViewCellEventArgs) Handles dgvdatos.CellContentClick 
Try 

    dgvdatos.EndEdit() 

    If TypeOf (sender.CurrentCell) Is DataGridViewButtonCell Then 

    If e.ColumnIndex = 2 Then 
     dgvdatos.Rows.Insert(sender.RowCount - 1) 
    End If 
    If e.ColumnIndex = 3 And sender.Rows.Count > 1 Then 
     count -= 1 
     dgvdatos.Rows.RemoveAt(e.RowIndex) 
    End If 
    If e.ColumnIndex = 1 Then 
     OpenSourceFileDialog.ShowDialog() 
     If DialogResult.OK Then 
     dgvdatos.CurrentRow.Cells(0).Value = OpenSourceFileDialog.FileName 
     End If 
    End If 
    dgvdatos.Refresh() 
    End If 
Catch ex As Exception 

    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
End Try 

末次

+0

感谢它的工作。 –

相关问题