å¨Winform(C#)ä¸è¦å®ç°éå¶Textboxåªè½è¾å ¥æ°åï¼ä¸è¬çåæ³å°±æ¯å¨æé®äºä»¶ä¸å¤çï¼å¤ækeycharçå¼ãéå¶åªè½è¾å ¥æ°åï¼å°æ°ç¹ï¼Backspaceï¼delè¿å 个é®ãæ°å0~9æ对åºçkeychar为48~57ï¼å°æ°ç¹æ¯46ï¼Backspaceæ¯8ã
å¤ææ¯å¦ä¸ºæ°åæBackspaceï¼æä¸é¢è¿æ ·åçè¯åªè½è¾å ¥æ°ååBackspaceï¼æ以è¿å¾ç»ä»£ç æ·»å äºæ¡ä»¶ï¼è¿è¦è½å¤è¾å ¥å°æ°ç¹ã
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
int kc = (int)e.KeyChar;
if ((kc < 48 || kc > 57) && kc != 8)
e.Handled = true;
}
catch (Exception)
{
}
}
è¾å ¥å°æ°ç¹ãè¾å ¥çå°æ°è¦ç¬¦åæ°åçæ ¼å¼ï¼ç±»ä¼¼9.9.9è¿æ ·çæ¯ä¸è½å¤è¾å ¥çãåæ³å°±æ¯ç¨float.TryParseæ¥è½¬æ¢Textboxä¸ä¹ååä¹åçå¼ï¼ç¶åæ¯è¾ä¸¤è ç转æ¢ç»æãå ·ä½ç代ç å¦ä¸ï¼
if (kc == 46) //å°æ°ç¹
{
if (txtMoney.Text.Length <= 0)
e.Handled = true; //å°æ°ç¹ä¸è½å¨ç¬¬ä¸ä½
else
{
float f;
float oldf;
bool b1 = false, b2 = false;
b1 = float.TryParse(txtMoney.Text, out oldf);
b2 = float.TryParse(txtMoney.Text + e.KeyChar.ToString(), out f);
if (b2 == false)
{
if (b1 == true)
e.Handled = true;
else
e.Handled = false;
}
}
}
参考资料:我自己