我有一个DataGridView
,我已将AllowUserToAddRows
属性设为false
,并且在Load
形式的事件处理程序中,我使用函数向网格添加了一个新行。现在,当用户编辑datagidview并且一旦他结束编辑并按 Enter ,我想调用该函数再次向网格添加新行。
我尝试了KeyDown
DataGridView
事件,但是当单元格处于编辑模式时,事件似乎不会触发。
答案 0 :(得分:1)
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = Keys.Enter Then
DataGridView1.EndEdit()
MessageBox.Show("Enter key is pressed")
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
在您的情况下使用此功能
答案 1 :(得分:0)
Microsoft说您不能向数据绑定的DataGridView添加新行,但这不是事实。 我假设您要在网格末尾添加新行。默认情况下,DataGridView控件的空白行位于网格底部,索引为-1。要以编程方式添加新行,请执行以下操作:
Dim rowindex as Int32
rowIndex =
DataGridView1.Rows.GetLastRow(includeFilter:=0)
DataGridView1.CurrentCell =
DataGridView1.Rows.Item(rowIndex).Cells(1)
DataGridView1.BeginEdit(selectAll:=True)
这将为您提供新的一行。如果将DataGridView设置为EditOnEnter,则单击单元格时,将在最左侧看到钢笔图标。