0

いくつかのgroupBoxes-controlsがあり、それぞれにNumericUpDown-controlがあります。NumericUpDownsには小さな変更があり、10進数の負の範囲でデクリメントすることもできます。コードは次のとおりです。

//Add KeyDown event to the numericUpDown control
numericUpDownGBPC12_angleRange.KeyDown += new KeyEventHandler(numericUpDownNegative);

関数numericUpDownNegativeのコードは次のとおりです。

void numericUpDownNegative(object sender, KeyEventArgs e)
{
    NumericUpDown temp = (NumericUpDown)sender;
    temp.Value -= temp.Increment;
    sender = (object)temp;
    NumericUpDown temp = (NumericUpDown)sender;
}

上記のコードを改善するための提案は大歓迎ですが、NumericUpDownで負の入力を有効にできるかどうかに興味があります。上記のコードは機能しますが、負の数を入れようとすると、奇妙なことが起こります。この動作は、変更されていないNumericUpDownには適用されません。

例: numericUpDownGBPC12_angleRangeの最小値が-70.0000000000最大値が70.0000000000であるとします。、コントロールのMinimum/Maximumプロパティパラメータで設定しました。コントロールの開始値は0.0000000000です。下ボタンを押すと、-70.0000000000に達するまで、それに応じて-0.0000000001、-0.0000000002、-0.0000000003などが表示されます。ただし、-x.xxxxxxxxxx(たとえば、-24.2398324119)と入力すると、x-0.0000000000(4-0.0000000000)になります。したがって、完全な数値24を入力できないだけでなく(この場合、NumericUpDownは最後に入力された数字(この場合は4)を取得するようです)、次の場合を使用して設定されない限り、ポイントが完全に消滅した後の部分全体を取得します。問題はポイントの前の部分だけにある場合。したがって、変更できるのは最初の桁(数字の左端)のみです。:-/

私はtextBox-controlsを使用することを考えていましたが、インターフェイスの一部として持っている数値フィールドの量は、すべてのtextBoxを解析するため、大きなオーバーヘッドを生み出します(悲しいことに、多くのユーザーがどこで実験するのが好きかを知っています;))特定の番号が入力されていることを確認するために実験することを意図したものではありません。ネガティブなことにもかかわらず、NumericUpDownには、たとえば1桁しか入力できず、精度や値の範囲などを指定できるなど、非常に優れた機能があります。

繰り返しになりますが、問題は、NumericUpDownがユーザーによる負の入力を受け入れることは可能ですか?

4

1 に答える 1

0

問題はKeyDownイベント(完全に削除する必要がありました)、数値として入力しようとした形式にありました。「。」ではなく「」、「セパレータ」があります。Visual Studioで(ローカリゼーションのため)。したがって、「。」と入力します。NumericUpDownを凶暴にしました。

于 2012-11-12T12:42:16.857 に答える