Нестандартный скроллинг
От: Lelikk Россия  
Дата: 13.06.07 08:38
Оценка:
Задача такая: необходимо чтобы контейнер (типа Panel) скроллировал содержимое, но не показывал полосы прокрутки (скроллинг будет задаваться программно).
В крайнем случае — чтобы можно было отрисовать полосу прокрутки самому.

Единственное, что нашел и помогает, это:

        [DllImport("user32")]
        public static extern int ShowScrollBar(
            IntPtr hwnd, ScrollBarConstants wBar, bool bShow);

        protected override void AdjustFormScrollbars(bool displayScrollbars)
        {
            base.AdjustFormScrollbars(displayScrollbars);
            SetScrollState(ScrollStateHScrollVisible, false);
        }

но при таком решении полосы прокрутки все время мигают, так как включаются видимо внутри
AdjustFormScrollbars. Если его не вызывать, то вообще скроллинга нет.
Re: Нестандартный скроллинг
От: Shurik_ Россия  
Дата: 13.06.07 09:23
Оценка:
Здравствуйте, Lelikk, Вы писали:

L>Задача такая: необходимо чтобы контейнер (типа Panel) скроллировал содержимое, но не показывал полосы прокрутки (скроллинг будет задаваться программно).

L>В крайнем случае — чтобы можно было отрисовать полосу прокрутки самому.

L>Единственное, что нашел и помогает, это:


L>
L>        [DllImport("user32")]
L>        public static extern int ShowScrollBar(
L>            IntPtr hwnd, ScrollBarConstants wBar, bool bShow);

L>        protected override void AdjustFormScrollbars(bool displayScrollbars)
L>        {
L>            base.AdjustFormScrollbars(displayScrollbars);
L>            SetScrollState(ScrollStateHScrollVisible, false);
L>        }
L>

L>но при таком решении полосы прокрутки все время мигают, так как включаются видимо внутри
L>AdjustFormScrollbars. Если его не вызывать, то вообще скроллинга нет.

Может попробовать добавить в панельку контейнер, который просто перемещать вверх или вниз имитируя прокрутку.
Re[2]: Нестандартный скроллинг
От: Lelikk Россия  
Дата: 13.06.07 11:32
Оценка:
Здравствуйте, Shurik_, Вы писали:

S_>Здравствуйте, Lelikk, Вы писали:


L>>Задача такая: необходимо чтобы контейнер (типа Panel) скроллировал содержимое, но не показывал полосы прокрутки (скроллинг будет задаваться программно).

L>>В крайнем случае — чтобы можно было отрисовать полосу прокрутки самому.

L>>Единственное, что нашел и помогает, это:


L>>
L>>        [DllImport("user32")]
L>>        public static extern int ShowScrollBar(
L>>            IntPtr hwnd, ScrollBarConstants wBar, bool bShow);

L>>        protected override void AdjustFormScrollbars(bool displayScrollbars)
L>>        {
L>>            base.AdjustFormScrollbars(displayScrollbars);
L>>            SetScrollState(ScrollStateHScrollVisible, false);
L>>        }
L>>

L>>но при таком решении полосы прокрутки все время мигают, так как включаются видимо внутри
L>>AdjustFormScrollbars. Если его не вызывать, то вообще скроллинга нет.

S_>Может попробовать добавить в панельку контейнер, который просто перемещать вверх или вниз имитируя прокрутку.


Спасибо, я тоже подумал так сделать.
Попробую.
Re[3]: Нестандартный скроллинг
От: Shurik_ Россия  
Дата: 13.06.07 12:59
Оценка:
Здравствуйте, Lelikk, Вы писали:

L>Здравствуйте, Shurik_, Вы писали:


S_>>Здравствуйте, Lelikk, Вы писали:


L>>>Задача такая: необходимо чтобы контейнер (типа Panel) скроллировал содержимое, но не показывал полосы прокрутки (скроллинг будет задаваться программно).

L>>>В крайнем случае — чтобы можно было отрисовать полосу прокрутки самому.

L>>>Единственное, что нашел и помогает, это:


L>>>
L>>>        [DllImport("user32")]
L>>>        public static extern int ShowScrollBar(
L>>>            IntPtr hwnd, ScrollBarConstants wBar, bool bShow);

L>>>        protected override void AdjustFormScrollbars(bool displayScrollbars)
L>>>        {
L>>>            base.AdjustFormScrollbars(displayScrollbars);
L>>>            SetScrollState(ScrollStateHScrollVisible, false);
L>>>        }
L>>>

L>>>но при таком решении полосы прокрутки все время мигают, так как включаются видимо внутри
L>>>AdjustFormScrollbars. Если его не вызывать, то вообще скроллинга нет.

S_>>Может попробовать добавить в панельку контейнер, который просто перемещать вверх или вниз имитируя прокрутку.


L>Спасибо, я тоже подумал так сделать.

L>Попробую.

Только если этот контейнер будет иметь не слишком большую высоту..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.