2011-11-25 70 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