1

たとえば、小数点以下2桁のWPF数値テキストボックスを作成するにはどうすればよいですか。

0.00 から始まり、ユーザー キーが 1 の場合、値は 0.01 になり、次にユーザー ユーザー キーが 2 の場合、値は 0.21 になります。

ユーザーキーが 5003 の場合、値は 30.05 です。

ありがとうございます。

4

2 に答える 2

4

確かに、@ JesseJamesがすでに提案しているように、いつでも実装できます。ただし、既存のものをより適切に使用することをお勧めします。ExtendedWPF Toolkitが必要なものであり、正確には IntegerUpDownです(必要なマスクを指定できます。5が付属しています)。

<xctk:IntegerUpDown FormatString="N0" Value="1" Increment="1" Maximum="100"/>
于 2012-09-04T03:44:41.467 に答える
-1

KeyDown イベント ハンドラーで実装できます。イベント引数のプロパティを設定e.Handle = trueし、出力数を計算します。

私のように書かないでください、それは単なる例です:))

public partial class MainWindow : Window
{
    private StringBuilder sb = new StringBuilder();

    public MainWindow()
    {
        InitializeComponent();
    }

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        e.Handled = true;
        switch (e.Key)
        {
            case Key.D0: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 0); break; }
            case Key.D1: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 1); break; }
            case Key.D2: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 2); break; }
            case Key.D3: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 3); break; }
            case Key.D4: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 4); break; }
            case Key.D5: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 5); break; }
            case Key.D6: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 6); break; }
            case Key.D7: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 7); break; }
            case Key.D8: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 8); break; }
            case Key.D9: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 9); break; }
        }
        textBox1.Text = sb.ToString();
    }
}

この例では、「Backspace」ヒットを処理して StringBuilder をクリアする必要もあります。値を取得するには、パーサーを使用します: double result = double.Parse(sb.ToString()); + NumPad 番号を処理します!

于 2012-09-04T03:25:32.213 に答える