2010-07-07 3 views
0

У меня есть форма VB .NET с элементом управления разделителем, и я хочу сохранить его положение между прогонами программы. В настоящее время я обрабатываю событие SplitterMoved и сохраняю SplitterDistance. Затем при запуске программы я устанавливаю значение SplitterDistance на сохраненное значение.Событие, которое срабатывает только тогда, когда пользователь перемещает сплиттер?

Однако иногда программа изменяет размер разделителя, поднимая событие SplitterMoved и переписывая мое сохраненное расстояние. У меня есть несколько разветвителей на нескольких вкладках в элементе управления вкладкой, и каждый раз, когда пользователь впервые переходит на новую вкладку, происходит событие SplitterMoved.

Есть ли какое-то событие, которое я могу использовать, которое срабатывает только тогда, когда пользователь перемещает сплиттер, а не когда программа перемещает сплиттер? Я попробовал MouseUp, но когда это событие срабатывает, новое SplitterDistance еще не установлено.

ответ

0

Нет, нет отдельного события, поскольку сплиттер имеет.

Учитывая, что разделитель должен находиться в том же месте, в котором он находился, прежде чем он не изменит значение, которое вы сохранили. Вы проверяете объект sender, чтобы убедиться, что вы обновляете правильную позицию сплиттера?

0

В SplitterEventArgs предусмотрены координаты сплиттера и координаты мыши.

Я бы предположил, что для событий, не вызванных пользователем SplitterMoved, координаты мыши будут вне диапазона.

+0

SplitterEventArgs имеет одинаковые аргументы, это не зависит от того, был ли он изменен пользователем или изменен. – qub1n