9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
|
|
1 | |
Замена стандартного scrollBar на panel26.06.2012, 20:30. Показов 4449. Ответов 7
Метки нет (Все метки)
Был разработан собственный ScrollBar. Как заменить стандартный ScrollBar который появляется на панели на мой? Если изменять св-во panel.VerticalScroll.Value, то на момент перемещения ползунка на панели появляется плохо прорисованный стандартный ScrollBar, и самого перемещения плавного нет, объекты на панели мерцают, прорисовываются полностью только по окончании сролинга. Как решить эту проблему?
0
|
26.06.2012, 20:30 | |
Ответы с готовыми решениями:
7
ScrollBar у Panel Реализовать ScrollBar в panel, содержащей множество компонентов Замена стандартного курсора. Замена стандартного копировщика |
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
|
|
26.06.2012, 20:34 | 2 |
Заменить его нельзя, его можно только отменить.
1) Поместить свой скрол рядом с панелью 2) Не делать с панелью того, что приводит к её скроллу. То есть всю необходимую обработку скролла реализовать самому. 3) На панель выводить только то, что соответствует положению своего скролла.
0
|
9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
|
|
26.06.2012, 21:37 [ТС] | 3 |
имеете ввиду самостоятельно вручную изменять Location компонентов? это будет жутко тормозить и при этом поэтапно изменять положение каждого контрола в отдельности... Никто не знает как это реализовано в виндовс, что вообще происходит при этом скролинге, поможет ли использование WinApi (изменять значение положения ползунка через WinApi)?
Добавлено через 6 минут еще вопрос...если Panel.VerticalScroll.Visible == true, то при перемещении ползунка моего скролбара, все скролится замечательно, если же == false, то начинаются эти баги, чем может принципиально отличатся эти 2-е ситуации. Предполагаю есть винапи функция для скрытия скрол бара, может ли это помочь, (т.е в св-ве написано Panel.VerticalScroll.Visible == true, а винапи его скрывает и все скролится замечательно) ?
0
|
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
|
|
27.06.2012, 05:33 | 4 |
а что там вообще на панели?
я то думал что графика. а контролы на панель со скроллом - это как-то необычно.
0
|
9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
|
|
27.06.2012, 14:02 [ТС] | 5 |
Для графики проблем не возникло бы, там есть класс Matrix и методы для смещения графики, а вот с элементами управления - другое дело. По сути винда ведь все равно все прорисовывает, можно ли указать что прорисовывать компоненты надо с позиции 0;-10 к примеру? смогу обойтись просто идеей реализации, что бы все как следует работало...
0
|
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
|
|
27.06.2012, 18:06 | 6 |
А почему бы тогда не воспользоваться вместо панели контейнером по имени FlowLayoutPanel ?
Когда у меня случалось во время работы оределяемое количество контролов, я как раз эту штуку применял.
1
|
9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
|
|
27.06.2012, 18:46 [ТС] | 7 |
Собственно функционал как у FlowLayoutPanel я как раз думал как реализовать, спасибо за наводку. Но саму проблему со скролом это никак не решает. Что бы более понятно было, скрин ниже. Вот есть несколько таких блоков с информацией на каждой странице, для этого и нужен скролбар.
0
|
9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
|
|||||||||||
28.06.2012, 19:08 [ТС] | 8 | ||||||||||
прокрутку сделал так
Добавлено через 37 минут наткнувшись на статью http://msdn.microsoft.com/ru-r... 71729.aspx, максимальное значение ScrollBar можно найти так:
0
|
28.06.2012, 19:08 | |
28.06.2012, 19:08 | |
Помогаю со студенческими работами здесь
8
Замена стандартного TreeView Замена стандартного WebBrowser Замена стандартного messagebox Замена стандартного context menu Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |