2017-02-16 6 views
1

Как получить (прокрутку) вертикальную полосу прокрутки слева от System.Windows.Forms.Panel?C#/winforms Панель с вертикальной полосой прокрутки слева?

Примечание: Я пробовал модифицировать стиль окна ala текстовое поле question, и это не сработало.

Я попытался с помощью подклассов Panel и pinvoking в CTOR, установка CreateParams.Style в CTOR, и переопределение CreateParams поглотителя для настройки стиля. нет.

+0

Возможный дубликат [TextBox с вертикальной полосой прокрутки на левой стороне] (http://stackoverflow.com/questions/ 14402428/textbox-with-vertical-scrollbar-on-the-left-side) –

+0

не дублированный, уже пробовал это безрезультатно. – CoderBrien

+0

Там, где им это нравится в некоторых местах этого мира, как и на Ближнем Востоке. Они читают свой алфавит справа налево. Установите для свойства RightToLeft панели значение «Да». –

ответ

4

Если добавить WS_EX_LEFTSCROLLBAR расширенный стиль управления он показывает полосу прокрутки на левой стороне:

using System.Windows.Forms; 
public class ExPanel : Panel 
{ 
    private const int WS_EX_LEFTSCROLLBAR = 0x00004000; 
    protected override CreateParams CreateParams 
    { 
     get 
     { 
      var cp = base.CreateParams; 
      cp.ExStyle = cp.ExStyle | WS_EX_LEFTSCROLLBAR; 
      return cp; 
     } 
    } 
} 
+0

вы уверены? как я сказал в сообщении, я попробовал это, и это не сработало для меня. – CoderBrien

+0

Скопируйте и вставьте класс в свое решение и создайте решение. Затем отбросьте экземпляр «ExPanel» к вашему, установите его «AutoScroll» в true, а затем, добавив некоторое содержимое, сделайте видимым полосу прокрутки. Запустите приложение и посмотрите результат. –

+0

Также не пропустите, что сказал, также мой комментарий. –