开发者

autoscroll panel to bottom

i have a panel in my winforms and in it i load some usercontrols .

i would like to autoscroll to the bottom of the panel( as my panel fills ) everytime a ne开发者_运维技巧w usercontrol is added . How can i do so ?


You can do that by setting the VerticalScroll of the Panel but I think it would be better to use ScrollControlIntoView instead.

private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
    panel1.ScrollControlIntoView(e.Control);
}

Good luck!


You could use ScrollControlIntoView and pass the control you last added.

An alternate solution would be:

panel.VerticalScroll.Value = panel.VerticalScroll.Maximum


I found that continuously adding controls to the panel at vertical increments would be affected negatively whenever a user had scrolled the panel up or down. I used the tip from Homam above, and found the following to work well:

panel1.VerticalScroll.Value = 0;

// Creating and adding a TextBox, tb, to the panel

panel1.ScrollControlIntoView(tb);

So first, I scroll to the top in order to use absolute vertical positions for my text boxes, then I place the Text Box, and finally, I make sure that the newly created text box comes into view.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜