private void tbDay_KeyPress( object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ( this .DesignMode)
return ;
TextBox obj = (TextBox)sender ;
obj.SelectedText = "" ;
string strValue = obj.Text.Trim() ;
int iLen= strValue.ToString().Length ;
int key = ( int )(e.KeyChar) ;
switch (key)
{
case 48: //0
case 49: //1
case 50: //2
case 51: //3
case 52: //4
case 53: //5
case 54: //6
case 55: //7
case 56: //8
case 57: //9
if (iLen == 0)
e.Handled = false ;
else if (iLen == 1) //已经输入了一位
{
e.Handled = true ; //默认不处理,后面分析需要处理的情况
if (key==48||key==49||key==50) //现在输入的是0,1,2
{
if (obj.SelectionStart == 0) //插入
{
if (strValue != "0") //已经输入的不是0
e.Handled = false ;
if (strValue == "0" &&(key==49||key==50))
e.Handled = false ;
}
else
{
if (strValue == "0"||strValue == "1"||strValue == "2"||strValue == "3") //追加且已经输入了0,1,2,3
e.Handled = false ;
if (key==48&&strValue == "0")
e.Handled = true ;
if (key==50&&strValue == "3")
e.Handled = true ;
}
}
else //输入的是非0,1,2数字
{
if (strValue == "0"||strValue == "1"||strValue == "2") //已经输入了一个0,1,2
{
if (obj.SelectionStart == 0) //前面插入数字
{
if (key==51&&strValue != "2") //只能插入3
e.Handled = false ;
}
else
e.Handled = false ;
}
}
}
else
e.Handled = true ;
break ;
case 45: //-
e.Handled = true ;
break ;
case 8: //backspace
if (iLen == 0)
obj.Parent.SelectNextControl(obj, false , true , false , true ) ;
break ;
case 27: //esc
e.Handled = false ;
break ;
default :
e.Handled = true ;
break ;
}
}
private void tbMonth_Enter( object sender, System.EventArgs e)
{
if ( this .DesignMode)
return ;
TextBox obj = (TextBox)sender ;
obj.SelectAll() ;
}
private void tbMonth_KeyDown( object sender, System.Windows.Forms.KeyEventArgs e)
{
if ( this .DesignMode)
return ;
TextBox obj = (TextBox)sender ;
int iValue = e.KeyValue ;
switch (iValue)
{
case 37: //left
if (obj.SelectionStart == 0)
{
obj.Parent.SelectNextControl(obj, false , true , false , true ) ;
}
break ;
case 38: //top
IncDecDate(1) ;
break ;
case 39: //right
if (obj.SelectionStart == obj.Text.Length)
{
obj.Parent.SelectNextControl(obj, true , true , false , true ) ;
}
break ;
case 40: //down
IncDecDate(-1) ;
break ;
}
}
private void DateInput_Leave( object sender, System.EventArgs e)
{
SetRightFmt() ;
}
<SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋