1

私はwinformにnumericupdownコントロールを持っています。テスト中に、上下キーを押して値を変更するオプションだけでなく、キーボードから値を入力するだけでよいことに気付きました。

私はそれをしたくありません。ボックス内の上下ボタンをクリックするだけで、ユーザーがnumericupdownの値を変更できるようにしたいだけです。

これまでのところ、私は単に解決策を見つけることができません。

誰もこれを行う方法を知っていますか?

4

3 に答える 3

3

ユーザーの編集を無効にするには、Readonlyプロパティをtrueに設定します。

updown.ReadOnly = true;

より多くの調整については、この回答を参照してください。

于 2012-11-05T16:14:27.100 に答える
2

許可する値の範囲によっては、ユーザー エクスペリエンスに悪いように聞こえます。

これを行うには、NumericUpDown から継承したコントロールを作成し、OnKeyPress/OnKeyDown メソッドをオーバーライドする必要があります。

于 2012-11-05T15:47:55.277 に答える
0

使用してもうまくいきupdown.ReadOnly = True;ません。再発するバグのようです。ただし、変更をキャッチして元に戻すと、元に戻ります。このために、関数updown_ValueChanged()updown.ValueChanged属性にバインドします。

    decimal spin = 1;
    private void updown_ValueChanged(object sender, EventArgs e)
    {
        if (updown.ReadOnly)
        {
            if (updown.Value != spin)
            {
                updown.Value = spin;
            }
        }
        else spin = updown.Value;
    }
于 2014-04-30T21:21:16.620 に答える