可用来显示空值的时间选择控件5

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: 新宋

Published At
Categories with Web编程
Tagged with
comments powered by Disqus