DataGridView Keypress事件只能输入数字
2010-09-19 23:00
423 查看
#Region "------- 处理 Grid 中的 Keypress ,以限定某些字段仅可输入数字等 -------- " ' 各Grid 中的 Seq No. 为 Int 类型; 其中的 Days 为 Int 类型; 其它的 Cost / Expense 为 Decimal 类型 Private EditingControl As DataGridViewTextBoxEditingControl ' ' ' <summary> ' ' ' 限定仅可以输入数字值及相关的操作符,如 ". "/回车/退格/删除等键 ' ' ' </summary> ' ' ' <remarks> 不可输入小数点 </remarks> Private Sub editingcontrol_INT_Keypress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) Dim keyAscii As Integer = Asc(e.KeyChar) If (keyAscii < Keys.D0) Or keyAscii > Keys.D9 Then _ If keyAscii <> Keys.Enter And keyAscii <> Keys.Back Then e.Handled = True End Sub ' ' ' <summary> ' ' ' 限定仅可以输入数字值及相关的操作符,如 ". "/回车/退格/删除等键 ' ' ' </summary> ' ' ' <remarks> 可输入小数点 </remarks> Private Sub editingcontrol_Decimal_Keypress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) Dim keyAscii As Integer = Asc(e.KeyChar) If (keyAscii < Keys.D0 And keyAscii <> Keys.Delete) Or keyAscii > Keys.D9 Then _ If keyAscii <> Keys.Enter And keyAscii <> Keys.Back Then e.Handled = True End Sub Private Sub grdALL_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles grdRoute.EditingControlShowing, grdHotel.EditingControlShowing, grdVisaInfo.EditingControlShowing, grdRouteInfo.EditingControlShowing EditingControl = CType(e.Control, DataGridViewTextBoxEditingControl) Select Case CType(sender, DataGridView).CurrentCell.OwningColumn.Name.Trim.ToLower Case "seq_no ", "booking_days " ' int AddHandler EditingControl.KeyPress, AddressOf editingcontrol_INT_Keypress Case "estimated_cost " ' Decimal AddHandler EditingControl.KeyPress, AddressOf editingcontrol_Decimal_Keypress End Select End Sub Private Sub grdALL_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdRoute.CellEndEdit, grdHotel.CellEndEdit, grdVisaInfo.CellEndEdit, grdRouteInfo.CellEndEdit Select Case CType(sender, DataGridView).CurrentCell.OwningColumn.Name.Trim.ToLower Case "seq_no ", "booking_days " ' int RemoveHandler EditingControl.KeyPress, AddressOf editingcontrol_INT_Keypress Case "estimated_cost " ' Decimal RemoveHandler EditingControl.KeyPress, AddressOf editingcontrol_Decimal_Keypress End Select 'RemoveHandler EditingControl.KeyPress, AddressOf editingcontrol_INT_Keypress 'RemoveHandler EditingControl.KeyPress, AddressOf editingcontrol_Decimal_Keypress End Sub #End Region
相关文章推荐
- C# 中 控件中只能输入数字 KeyPress 事件
- 关于KeyPress事件只能输入数字小数的问题
- [文本框]TextBox 只能输入数字 处理粘贴事件
- datagridview 限制某列只能输入数字
- datagridview 只能输入数字
- silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法
- DataGridView的单元格控制只能输入数字
- C#--关于事件的定义及注册,如何实现在一个文本框中只输入数字或者只能输入0至9十种数字、a至z或A至Z五十二种字符。
- C#中DataGridView实现某一列只能输入数字
- dataGridView中只能输入数字的判断
- c# 实现DataGridView中的单元格只能输入数字和点
- C#中DataGridView实现某一列只能输入数字
- 屏蔽浏览器默认事件 之 只能输入数字框的文本框
- dataGridView中限制某列/单元格只能输入数字
- input框设置onInput事件只能输入数字,能兼容火狐IE9
- 控制DataGridView某列只能输入数字
- MVVM模式下 所有控件共享同一事件 以TextBox只能输入数字键和回车键为例子
- datagridview 限制某列只能输入数字
- DataGridView的单元格控制只能输入数字
- C# Winform 中验证DataGridView单元格内容--限制单元格中只能输入数字