Событие, которое срабатывает только тогда, когда пользователь перемещает сплиттер? - PullRequest
0 голосов
/ 07 июля 2010

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

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

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

Ответы [ 2 ]

0 голосов
/ 07 июля 2010

SplitterEventArgs предоставляет как координаты разделителя, так и координаты мыши.

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

0 голосов
/ 07 июля 2010

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

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

...