2011-01-12 13 views

Antwort

8

Sicher ist es möglich. Ich kenne keine Möglichkeit, die Verbindung zwischen den beiden Steuerelementen automatisch herzustellen, so dass Sie den Code selbst schreiben müssen. Aber keine Sorge, es ist nicht schwer.

Sie müssen zuerst einen Handler an das Ereignis anhängen, das von jedem Steuerelement ausgelöst wird, wenn sich der Wert ändert. Logischerweise steuert beides dieses Ereignis gleich: ValueChanged. Anschließend können Sie in jeder Ereignishandlermethode den Wert des anderen Steuerelements programmgesteuert auf den neuen Wert des ersten Steuerelements festlegen. Zum Beispiel:

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; 
} 

Offensichtlich für dies korrekt funktionieren kann, müssen Sie entweder, um sicherzustellen, dass die Kontrollen den gleichen Bereich (Maximal- und Minimalwerte) haben oder einige Fehlerprüfungen auf den obigen Code hinzuzufügen.

+1

Wird es nicht zu endlosen Anrufen führen? – 26071986

+0

@ 26071986: Nein, wird es nicht. Probieren Sie es aus und sehen Sie. ;-) –

+0

Erhalten einer Endlosschleife von Ereignisanrufen wie @ 26071986 suggeriert – whiteshooz