WinFormsのNumericupDownとTrackBarコントロールの値をどのように同期できますか?
-
10-10-2019 - |
質問
単純なWindowsフォームアプリケーション(WPFではありません)があり、2つのコントロールがあります。
- トラックバー
- numericupdown
それらの間でいくつかの拘束力のあるものを作りたいので、そのうちの1つがその値が変更された場合、他のコントロールが更新されて同じ値が表示されます。
これは可能ですか?もしそうなら、どうすればできますか?
ありがとう。
解決
確かに、それは可能です。 2つのコントロール間の接続を自動にする方法がわからないので、自分でコードを書き込むことができます。しかし、心配しないでください、それは難しくありません。
最初に、その値が変化したときに各コントロールによって提起されるイベントにハンドラーを添付する必要があります。論理的に十分に、両方ともこのイベントを同じものに制御します。 ValueChanged
. 。次に、各イベントハンドラーメソッドでは、他のコントロールの値を最初のコントロールの新しい値にプログラム的に設定できます。例えば:
void myNumericUpDown_ValueChanged(object sender, EventArgs e)
{
// Sync up the trackbar with the value just entered in the spinbox
myTrackBar.Value = Convert.ToInt32(myNumericUpDown.Value);
}
void myTrackBar_ValueChanged(object sender, EventArgs e)
{
// Sync up the spinbox with the value just set on the trackbar
myNumericUpDown.Value = myTrackBar.Value;
}
明らかにこれが正しく機能するためには、コントロールが同じ範囲(最大値と最小値)があることを確認するか、上記のコードにいくつかのエラーチェックを追加する必要があります。
所属していません StackOverflow