我的 winform 中有一个 flowlayoutpanel,其中图像是动态添加的。我希望 vertical scroll bar 始终位于底部,显示添加的最后一张图片。我怎样才能做到这一点?
我有
AutoScroll = trueFLow Direction = Top DownWrap Content = False

最佳答案

可滚动容器控件(如 FlowLayoutPanel)会自动将焦点保持在控件的 View 中。但是PictureBox比较特殊,不能接收焦点。因此,您必须通过明确要求 FLP 使添加的控件可见来提供帮助,使用其 ScrollControlIntoView() 方法。像这样:

    var pic = new PictureBox();
    //...
    flowLayoutPanel1.Controls.Add(pic);
    flowLayoutPanel1.ScrollControlIntoView(pic);

这具有强大的优势,它适用于您应用于 FLP 的任何布局设置。您还可以修改 AutoScrollPosition 属性,但很难做到正确:
    flowLayoutPanel1.AutoScrollPosition = new Point(
        pic.Right  - flowLayoutPanel1.AutoScrollPosition.X,
        pic.Bottom - flowLayoutPanel1.AutoScrollPosition.Y);

关于c# - 始终在垂直滚动条中滚动到底部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21642457/

10-13 02:00