这是我的代码,用于将所有列设置为仅输入数字:
Private Sub dvBelt_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dvBelt.EditingControlShowing
Try
RemoveHandler e.Control.KeyPress, AddressOf TextNumberKeypress
AddHandler e.Control.KeyPress, AddressOf TextNumberKeypress
Catch ex As Exception
'...
End Try
End Sub
Sub TextNumberKeypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
If Asc(e.KeyChar) >= 33 And Asc(e.KeyChar) <= 47 Or _
Asc(e.KeyChar) >= 58 Then
e.Handled = True
End If
End Sub现在我想要的是只设置第一列,只允许输入数字,其余的列可以输入字符串。
谢谢你的帮助
发布于 2013-09-11 04:02:11
在dvBelt_EditingControlShowing方法中,只有当当前单元格指向第一列并将其注册到特定单元格时,才会注册事件。在C++/Cli中,代码如下所示
void dvBelt_EditingControlShowing(System::Object ^sender, System::Windows::Forms::DataGridViewEditingControlShowingEventArgs ^e) {
try {
if (this->dvBelt->CurrentCell->ColumnIndex == 0) { // 0 is the column index for the first column
//do the removing and adding of your kepress event here
}
} catch (Exception ^ex) {
}}https://stackoverflow.com/questions/18731698
复制相似问题