1

私の質問は良いもののように思えないかもしれませんが、ここに説明があります: 私は、ユーザーからの入力を受け取るテキストボックスを持っているフォームでアプリケーションを作成しています ここに私のコードがあります

private void Form1_Load(object sender, EventArgs e)
{
    textBox1.Text = string.Format("{0:0.##}", "0.00");
}

これにより、ページロード時にテキストボックスに値が表示されます: 0.00 この後、キーボードのバックスペースボタンをクリックすると

if (e.KeyChar.ToString() == ".")
{
    e.Handled = true;
    int b = textBox1.Text.LastIndexOf("00");
    textBox1.SelectionStart = b;
}
else
{
    string abc = "0";
    string a = textBox1.Text.TrimStart(abc.ToCharArray());
    textBox1.Text = a;
}

このコードは、テキストボックスの現在: .00のみをここに導きますが、この後、値を入力すると値が次のようになります。2334.3423424 ですが、2334.34 のようにしたいのですが、値は.00のみを置き換える必要があり、その後ユーザーは値を入力できません。

4

2 に答える 2

2

このコードは、ユーザーがテキストボックスに小数点以下 2 桁しか入力できないように制限します。

    //In key press event:
    if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
    {
        e.Handled = true;
    }
    if (!char.IsControl(e.KeyChar))
    {
        TextBox tt = (TextBox)sender;
        if (tt.Text.IndexOf('.') > -1 && tt.Text.Substring(tt.Text.IndexOf('.')).Length >= 3)
         {
           e.Handled = true;
         }
     }
于 2012-09-15T06:10:40.123 に答える
0

数値を小数点以下 2 桁まで切り上げたい場合は、Math.Round(Double, Int32)関数を使用します。

あなたの場合、あなたは電話することができます

double value = Convert.ToDouble(textBox1.Text);
double finalValue = Math.Round(value, 2);
textBox1.Text = finalValue.ToString();

また、ユーザー入力を検証し、ユーザーが数値のみを入力していることを確認してください。

于 2012-09-15T06:05:30.073 に答える