2009-07-16 5 views
2

У меня есть много radiobutton в panel с автоматической прокруткой, установленной на true. Проверяется один из radiobutton. Я хочу убедиться, что проверенный должен быть видимым, т. Е. Вертикальный scrollbar должен быть перемещен так, чтобы отображался отмеченный radiobutton.
Есть ли способ сделать это?как установить положение полосы прокрутки в панели окон формы (C#)

P.S. Я попытался, как показано ниже, но это не работает

RadioButton radiobutton = new RadioButton(); 
..... 
panel.Controls.Add(radioButton); 
if (some logic) 
{ 
    radioButton.Checked = true; 
    panel.ScrollControlIntoView(radioButton); 
} 
+0

Я попытался это тоже, но не работаю panel.AutoScrollPosition = radioButton.Location – malay

+0

Кроме того, я не в состоянии заданного значения panel.AutoScrollPosition, всегда 0,0 – malay

+0

установка this.ActiveControl к кнопке проверяемого радио помогает хоть. Но это устранит проблему, если у меня будет одна такая панель. К сожалению, у меня две панели. – malay

ответ

3

Чтобы исправить это, я добавить вышеупомянутый код (panel.ScrollControlIntoView(radioButton)) после того, как форма показана (т.е. в обработчик события для form_Shown события).

Это работает сейчас. Но у меня все еще нет правильного объяснения этому.

+0

будет здорово, если кто-нибудь может дать объяснение этому поведению. благодаря – malay