1.利用KeyPress,控制输入,只能是数字.具体请参看:VB.NET使文本框只能输入数字
Public Class frmControlInput
'用于控制文本的输入,比如卡号,只允许输入数字
Public Shared Sub ControlInputNum(ByVal e As System.Windows.Forms.KeyPressEventArgs)
'如果是输入的数字和退格键
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False '可以继续输入
Else
e.Handled = True
End If
End Sub
其中e.Handled=True表示屏蔽输入,也就是说=False,表示可以输入.想要知道KeyPress的详细内容:Keypress,KeyUp,KeyDown .里面比较详细的介绍了KeyPress和KeyUp,KeyDown的内容,还分别介绍了这三个事件可以捕获的按键.像KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符.
2.Handles txtLeastOnLine.KeyPress, txtAddTime.KeyPress, txtReadinessTime.KeyPress
如果界面上,多个文本框都要控制输入为数字,那在每个文本框的KeyPress事件下写就太麻烦了,所以利用这个方法,写下一个控制方法,然后Handles 就把所有需要控制的文本框都加上.第一篇提到的博客里有介绍.
''' <summary>
''' 控制数字的输入,如递增时间,最少上机时间和准备时间
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub ControlInputNum(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles txtLeastOnLine.KeyPress, txtAddTime.KeyPress, txtReadinessTime.KeyPress
'如果是输入的数字和退格键
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False '可以继续输入
Else
e.Handled = True
End If
End Sub
3.文本框的输入长度.
在窗体的Load事件,写上下面这句.如果太多文本框都要用到这个,就写成函数.
txtCardNo.MaxLength=11 '表示卡号文本框只能输入11位的长度
4.文本框的输入格式
利用IsNumeric,IsDate,等都可以控制,也可用正则表达式.我觉得Format,也是可以用的.
5.DateTimePicker控件
MaxDate,设置最大日期不超过今天.设置开始日期不能大于结束日期.使用上DateDiff方法,和ValueChanged时间.
6.递增卡号
查询出最大的卡号从数据库中,比如0001,这样的如何计算.在前面加1,变成10001,然后再用SubString(1),去掉第一个1.就能得到0002,而不是2.
7.状态模式
外观层调用状态的上下文类,并设置初始状态.然后进入初始状态,在初始状态类中判断是否符合,如果符合则在此类中进行,否则转到下一类中.
8.将Form类型的数据作为参数
如果要遍历Form上的所有控件,那么如果有GroupBox这个控件,这个控件里面的控件好像不会被遍历到.除非你特意指明了要遍历里面的控件.
9.导出到Excel,如果要用到这个,就将系统中的Excel,添加到引用中.
Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()
10.调试技巧