协作版机房收费系统2

合作版机房收费系统2

        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.调试技巧

      VS2010 调试技巧