2011-11-25 49 views
0

我有一个只读单元格的datagridview,我想在用户按空格键时显示一个formdialog窗口。但不可能,因为单元格只读= true。DataGridView - ReadOnly单元格KeyDown事件

我一直在使用下面的代码和EditingControlShowing事件。当单元格只读= false时,它有时会起作用。

Private Sub sub_fecha_keydown(ByVal sender As Object, ByVal e As KeyEventArgs) 
    If e.KeyCode = Keys.Space Then 
     Dim frm As New frmFecha 
     frm.fecha_inicial = Me.m_dtp_id_fecha.Fecha 
     Dim res As DialogResult = frm.ShowDialog() 
     If res = Windows.Forms.DialogResult.OK Then 
      Me.m_dgv_detalle.Rows(Me.m_dgv_detalle.CurrentRow.Index).Cells("m_dgv_dtm_documento").Value = frm.fecha_format 
     Else 
      Me.m_dgv_detalle.Rows(Me.m_dgv_detalle.CurrentRow.Index).Cells("m_dgv_dtm_documento").Value = "" 
     End If 
    End If 
End Sub 

我想保持单元格readonly = true。

有没有其他方法可以做到这一点?

非常感谢您的时间和帮助。

回答

0

与其试图拦截只读单元格的按键(这可能不可行),为什么不在字段旁边添加按钮列,以及何时按下按钮来执行操作。

这样您就不必担心单元格是否只读,并且让用户更容易理解表单如何被访问。

以下是DataGridViewButtonColumn上的MSDN documentation的链接。

+0

thansk你为你的答案,我早些时候想过。但我希望用户只使用键盘。 cellclick事件也可以在用户按下按钮单元格时输入吗? – Eccaos

相关问题