I just figured it out. Now post the source code here and hope anybody help me test it. Want it be perfect.
Thanks a lot.
Code:int iCaret = 0; private void textBox1_KeyDown(object sender, KeyEventArgs e) { TextBox txt = (TextBox)sender; switch (e.KeyCode) { case Keys.Left: iCaret = ((iCaret - 1) < 0) ? 0 : (iCaret - 1); break; case Keys.Right: iCaret = ((iCaret + 1) > txt.Text.Length) ? txt.Text.Length : (iCaret + 1); break; case Keys.Home: iCaret = 0; break; case Keys.End: iCaret = txt.Text.Length; break; case Keys.Back: iCaret = ((iCaret - 1) < 0) ? 0 : (iCaret - 1); break; default: break; } } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { TextBox txt = (TextBox)sender; if (e.KeyChar != 8 && iCaret == 0 && txt.Text.Contains("-")) { e.Handled = true; return; } if (char.IsDigit(e.KeyChar) || e.KeyChar == 8) e.Handled = false; else { if (e.KeyChar == '-') { if (!txt.Text.Contains("-")) { txt.Text = "-" + txt.Text; iCaret++; txt.Select(iCaret, 0); } e.Handled = true; } else if (e.KeyChar == '.') { e.Handled = txt.Text.Contains("."); } else e.Handled = true; } if (!e.Handled && e.KeyChar != 8) iCaret++; }




Reply With Quote