あなたはKeyPress
イベントを使用して押していると、どこ入力された値が置かれるために何が起こっているかを判断するには、以下のロジックを追加する必要があります。
e.Handled
の値をtrueに設定すると、ユーザーの入力を無視するようにシステムに指示しています。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Only allow digits, decimal points and control characters (Backspace, delete, etc)
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != '.'))
{
e.Handled = true;
}
int PointIndex = (sender as TextBox).Text.IndexOf('.');
// only allow one decimal point and one digit before decimal point
if (((e.KeyChar == '.') && PointIndex > -1) ||
(e.KeyChar == '.' && textBox1.SelectionStart > 1) ||
(PointIndex == 1 && textBox1.SelectionStart <= PointIndex))
{
e.Handled = true;
}
}
このコードは、入力中のユーザーの入力を検証します。
EDIT:このコードはのみ入力しているユーザーとして入力を検証するため、
はまた、あなたはまた、無効な値に貼り付けるそれらを防ぐことになるでしょう。これを行うには、テキストボックスの
ShortcutsEnabled
プロパティをfalseに設定します。
数字を制限するために現在使用しているコードを投稿してください。 – CathalMF
if( "。" && 0が先頭桁の前の0> 1) { "。"の前にすべてゼロを削除します。左に1つ。 } – Ovidzikas
NumericUpDownまたはMaskedTextBoxを使用してください –