0

ユーザーが特定の計測器パラメーターの値を入力できるようにする必要がある計測器コントローラーをプログラミングしています。そのようなパラメータの 1 つがNumber of Samples. 指定された最小値、最大値、増分に従ってユーザー入力を制限する必要があります。

Min: 32
Inc: 32
Max: 2097120

したがって、可能な値は次のとおりです。

32, 64, 96, 128, 160, ..., 2097120

を使用することを検討しましたComboBoxが、これほど多くの項目があると、リストの読み込みが遅くなるだけでなく、ユーザーがそのような大きなリストから値を選択するのにイライラすることになります。

を使用することも考えましたNumericUpDownが、Incrementパラメーターは上矢印または下矢印を押したときに適用される増分のみを制御します。コントロールの値は、指定された増分に強制さ​​れません。たとえば、38 と入力すると、最も近い値である 32 に強制変換されます。58 と入力すると、64 に強制変換されます。

やりたいことを実行できるコントロールはありますか? NumericUpDownまたは、値を強制するために値変更イベントを継承して処理する必要がありますか? リストの一部のみをロードし、ユーザーがスクロールするときに残りをロードし続ける特別なComboBox実装があるので、リスト全体がロードされるまでどれだけ長く待つ必要がないのでしょうか?

ありがとう。

編集: NumericUpDown クラスを拡張して、必要なものを提供します。助けてくれてありがとう!

4

2 に答える 2

0

TrackBarコントロールを使用してみることができます。

ステップサイズと範囲を指定できます。

ただし、64Kの個別のステップがあります。ユーザーはそれを正確に選択することはできません。2つのスライダーを使用できます。1つは粗い制御用、もう1つは細かい制御用です。

または、数値を入力させてから32で割り、次に32を掛けることもできます。

于 2013-03-18T20:52:48.697 に答える
0

@FelicePollanoが示唆したように、トラックバーはあなたが望むもののように聞こえます. 実際の値に合わせてトラックバーを作成し、それを非表示にして、トラックバーの値を小さいまたは大きい増分プロパティで単純にインクリメントするボタン (または他の必要なもの) を介してユーザーが操作できるようにすることができます。

于 2013-03-18T20:56:35.327 に答える