Несомненно, это возможно. Я не знаю, как установить связь между двумя автоматическими средствами управления, поэтому вы сами будете писать код. Но не беспокойтесь, это не сложно.
Сначала необходимо прикрепить обработчик к событию, которое поднимается каждым элементом управления при изменении его значения. Логически достаточно, оба контролируют это событие одинаково: 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;
}
Очевидно, что для этого, чтобы работать правильно, вам необходимо либо убедиться, что элементы управления имеют одинаковый диапазон (максимальные и минимальные значения), или добавить некоторые проверки ошибок в коде выше.
Не приведет ли это к бесконечным звонкам? – 26071986
@ 26071986: Нет, не будет. Попробуй и посмотри. ;-) –
Получение бесконечного цикла вызовов событий, как @ 26071986 предлагает – whiteshooz