WinFormsのNumericupDownとTrackBarコントロールの値をどのように同期できますか?

StackOverflow https://stackoverflow.com/questions/4669970

質問

単純なWindowsフォームアプリケーション(WPFではありません)があり、2つのコントロールがあります。

  1. トラックバー
  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;
}

明らかにこれが正しく機能するためには、コントロールが同じ範囲(最大値と最小値)があることを確認するか、上記のコードにいくつかのエラーチェックを追加する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top