我正在开发一个项目,包括为每个控件调用某种类型的方法,我有这个代码:
Private Sub txtBcNum1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBcNum1.KeyPress
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
如果我想在文本框中只允许数字和退格,这段代码就像一个魅力。
问题: 我有15个文本框(txtBcNum1,txtBcNum2,....,txtBcNum15),在每个文本框的KeyPress方法中调用此函数的最佳方法是什么,而不是手动将其添加到 KeyPress 方法?
答案 0 :(得分:1)
您可以向Handles子句添加多个控件:
Private Sub txtBcNum1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles txtBcNum1.KeyPress, txtBcNum2.KeyPress, txtBcNum3.Keypress, ...
这样就可以为每个控件调用sub。如果要在不同的表单中重用此代码,最好创建一个从Textbox继承的新控件,该控件可能被称为NumericTextBox并处理其自己的KeyPress事件。这样,您就不必在使用此控件的表单中添加任何代码。
另外,您是否考虑过使用内置的NumericUpDown控件来实现相同的目的?