C# 更改面板起点

C# 更改面板起点,c#,.net,winforms,panel,autoscroll,C#,.net,Winforms,Panel,Autoscroll,在我的程序中,我有一个1000×1500像素的面板,在这个面板中有一个4000×10000像素的面板,我可以滚动浏览。现在,这个面板开始像在左边(图片中的例子),但我想知道我是否可以使它开始像在右边的例子。是否可以更改面板的0,0点(链接中的图片) Im使用派生面板 class BufferedPanel : Panel { public BufferedPanel() { this.DoubleBuffered = true;

在我的程序中,我有一个1000×1500像素的面板,在这个面板中有一个4000×10000像素的面板,我可以滚动浏览。现在,这个面板开始像在左边(图片中的例子),但我想知道我是否可以使它开始像在右边的例子。是否可以更改面板的0,0点(链接中的图片)

Im使用派生面板

class BufferedPanel : Panel
    {
        public BufferedPanel()
        {
            this.DoubleBuffered = true;
            this.ResizeRedraw = true;
        }
    }

可以设置新面板的“位置”属性

Panel.Location = New Point(OriginalPanel.Width/2 - Panel.Size.Width/2, OriginalPanel.Height/2 - Panel.Size.Height/2);

请尝试将其添加到面板构造函数:

this.Anchor = System.Windows.Forms.AnchorStyles.Left;

您需要设置外部自动滚动面板的初始滚动位置。为此,可以设置外部面板的属性。您应该在表单显示后执行此操作:

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    panel1.AutoScrollPosition = new Point(0, 1250);
}

谢谢,但这使我无法滚动到面板的顶部。我可以看到滚动条的大小加倍,然后我无法再滚动到顶部的行这将删除面板上的垂直滚动条,我将滚动条设置为:this.panel.AutoScroll=true;尝试添加此选项。AutoScroll=true;在放置此项时的同一位置。Anchor=System.Windows.Forms.AnchorStyles.Left;我需要固定大面板,对吗?但是我在大面板所在的小面板上设置了AutoScroll=true,否则它不起作用。您需要哪个面板具有可滚动、外部还是内部?小面板中的大面板需要可滚动,仅当我在小面板上将autoscroll设置为true时,它才起作用。您的意思是只想更改初始滚动位置吗?或者,如果不是autoscroll,您的意思是只想将内部面板的位置设置为(0,-1250)?这是autoscroll,我想这样做,但也可以将(0,1250)设置为(0,0)点吗?您应该设置
outerPanel.AutoScrollPosition
。谢谢!,我需要为desinger类tho中的面板添加什么类型的事件处理程序?覆盖
OnShown
方法
Form
就足够了。如果您不想覆盖
窗体的
显示方法
,请处理窗体的
显示事件。是否有方法在运行时更频繁地调用此函数,例如释放轨迹栏(用于缩放)时。我有一个eventhandler函数。是的,你可以在显示表单后随时调用它。