代码之家  ›  专栏  ›  技术社区  ›  Mac

当包含的控件太大时,如何使滚动条显示在可调整大小的面板中?

  •  16
  • Mac  · 技术社区  · 15 年前

    我正在开发Windows窗体应用程序(.NET 2.0,vs 2005)。我有一个窗体,它基本上包含一个面板,该面板随窗体动态调整大小:

    this.panel1.Dock=DockStyle.Fill;
    

    此面板仅用作容器。在运行时,将添加自定义控件:

    UserControl uc=new UserControl();
    panel1.Controls.Add(uc);
    uc.Dock=DockStyle.Fill;
    

    由于此自定义控件具有最小大小要求,因此如果滚动条太小而无法显示整个控件,我希望滚动条显示在包含面板上:

    this.panel1.AutoScroll=true;
    

    这不起作用。我尝试使用锚属性而不是Dock属性来调整面板的大小,但没有效果。

    3 回复  |  直到 12 年前
        1
  •  25
  •   NascarEd    15 年前

    不要停靠用户控件。请改用anchor属性。(锚定在所有四个侧面)。 设置用户控件的MinimumSize属性 设置面板的AutoScrollMinSize属性

    除非设置面板的AutoScrollMinSize属性,否则面板的滚动条将不会显示。将用户控件的Dock设置为Fill似乎隐藏了面板的滚动条。

        2
  •  2
  •   Mark Lakata    14 年前

    在对话框窗体中初始化组件后,我执行了此操作,它似乎可以工作:

    tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1));
    

    我在桌子上有一堆子面板。所有行和列都设置为自动调整大小。出于某种原因,控件不够智能,请告诉滚动控件它是首选大小。

        3
  •  1
  •   Harry Gross    12 年前

    panel.autoscroll=*真正的工作-现在!我玩和发挥了上述的想法,为面板和用户控制,最后重置一切回到默认,设置面板上的自动滚动,和…哇!不知怎么的,它又起作用了……去想一想……