2013-06-18 5 views
0

У меня есть панель, она говорит, что эта панель имеет высоту 500 пикселей. Внутри этой панели многострочный текстовый блок, который больше, чем панель, - предположим, что высота составляет 1000 пикселей.Как прокручивать панель при выборе текста?

Панель установлена ​​так, что появляется полоса прокрутки, и она прокручивается с помощью колеса мыши и перетаскивая полосу прокрутки. Однако при выборе текста в текстовом поле (выделение), а затем перетаскивания выделения за пределы отображаемого текста он не прокручивается, но я хочу его. Как и при выборе текста в браузере выше видимого.

Это, вероятно, стоит отметить, что моя панель настроена, хотя не так много, я просто добавил следующий код, чтобы предотвратить проблемы с установкой фокуса на текстовом поле, которое заставляет его перейти к нижней:

class PanelNoScrollOnFocus : Panel 
{ 
    protected override System.Drawing.Point ScrollToControl(Control activeControl) 
    { 
     return DisplayRectangle.Location; 
    } 
} 

Я получил этот код from here, так что вы можете увидеть больше информации о том, почему я использую его, если нужно.

+0

Это потому, что движение мыши находится в 'textbox' не ваш' panel', вы можете просто использовать 'scrollbar' в' textbox'? – Bolu

+0

@Bolu: Конечно, я могу использовать его, но это не очень ожидаемое поведение. Пока я могу жить с этим. Основная причина для этого - улучшить поддержку при копировании текста. Не торопитесь, я могу немного засушить этот вопрос и посмотреть, не вернется ли что-нибудь. – musefan

ответ

0

Вы можете попробовать это:

public Form1() 
{ 
    InitializeComponent(); 
    textBox1.MouseWheel += textBox1_MouseWheel; 
    panel1.KeyDown += panel1_KeyDown; 
} 

void panel1_KeyDown(object sender, KeyEventArgs e) 
{ 
    textBox1.Focus(); 
} 

void textBox1_MouseWheel(object sender, MouseEventArgs e) 
{ 
    panel1.Focus(); 
} 
+0

Это не работает. Возможно, вы неправильно поняли мой вопрос, поскольку у меня уже есть прокрутка мыши, работающая при выборе текстового поля – musefan

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