2016-02-07 8 views
1

У меня странное поведение с моей вкладкой. Прежде всего - при инициализации формы Я использую следующий код:Прокрутка не прокручивается вверху на вкладке

tabPage3.VerticalScroll.Value = 0; 

Однако это выглядит следующим образом:

scrollbar position

Белая линия на изображении является ToolStrip, так скроллбара просто прокручивается вплоть до нижней части инструментальной панели. Теперь, когда я помещаю строку кода в событие Paint из tabPage, она работает (полоса прокрутки находится на самой верхней части моей вкладки). Тем не менее, я не могу больше перемещать полосу прокрутки - она ​​возвращается к вершине каждый раз, когда я хочу ее переместить. Я пробовал разные условия, такие как установка значения при вводе вкладки или в событии прокрутки страницы, чтобы использовать код только один раз в событии рисования, но затем он приводит к поведению, показанному на изображении.

Как я могу это решить? Спасибо заранее!

+0

Событие Paint запускается * много *. Каждый раз, когда элемент управления необходимо перекрасить. Так что код, который вы там помещаете, часто выполняется. Если у вас есть код, который сбрасывает положение полосы прокрутки, прокручивание будет невозможно. Во всяком случае, совершенно необязательно «инициализировать» значение полосы прокрутки до 0. Это позиция по умолчанию (вверху или весь путь влево, в зависимости от ориентации полосы прокрутки). –

+0

Хорошо, но почему это срабатывает корректно (в зависимости от позиции) при вводе события рисования? как добиться того, чтобы положение полосы прокрутки находилось на самой верхней части инструментальной панели? – Canox

ответ

0

Вместо того, чтобы использовать событие onPaint вашей вкладки, вы можете использовать событие Selectedindexchanged вашего tabControl. Там вы можете установить значение Scrollbarvalue в 0 каждый раз, когда отображается вкладка TabPage 3. Вы Code выглядели бы так.

private void TabControl1_SelectedIndexChanged(Object sender, EventArgs e) 
{ 
    if(tabControl1.SelectedTab = tabPage3) 
    { 
    tabPage3.VerticalScroll.Value = 0; 
    } 
} 
+0

Это приведет к такому же поведению, как показано на рисунке. Он не прокручивается до вершины – Canox

+0

Вы добавили TabControl1_SelectedIndexChanged в событие IndexChanged вашего TabControl? – RomCoo

+0

Да, я это сделал. Тот же результат. Это странное поведение. Панель прокрутки просто блокируется с помощью панели инструментов. Это работает только с событием краски до сих пор. И только если это вызвало много. Есть ли решение для этого? Я не понимаю ... – Canox

 Смежные вопросы

  • Нет связанных вопросов^_^