私はwinformにnumericupdownコントロールを持っています。テスト中に、上下キーを押して値を変更するオプションだけでなく、キーボードから値を入力するだけでよいことに気付きました。
私はそれをしたくありません。ボックス内の上下ボタンをクリックするだけで、ユーザーがnumericupdownの値を変更できるようにしたいだけです。
これまでのところ、私は単に解決策を見つけることができません。
誰もこれを行う方法を知っていますか?
私はwinformにnumericupdownコントロールを持っています。テスト中に、上下キーを押して値を変更するオプションだけでなく、キーボードから値を入力するだけでよいことに気付きました。
私はそれをしたくありません。ボックス内の上下ボタンをクリックするだけで、ユーザーがnumericupdownの値を変更できるようにしたいだけです。
これまでのところ、私は単に解決策を見つけることができません。
誰もこれを行う方法を知っていますか?
許可する値の範囲によっては、ユーザー エクスペリエンスに悪いように聞こえます。
これを行うには、NumericUpDown から継承したコントロールを作成し、OnKeyPress/OnKeyDown メソッドをオーバーライドする必要があります。
使用してもうまくいき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;
}