2012-02-23 61 views
2

我在窗体中有一个面板,我希望它位于窗体顶部的固定位置。所以,如果我向下滚动,面板将始终可见。面板固定位置

你知道我该怎么做?

+1

ASP.NET,的WinForms或WPF?都有面板,我们可以挑一个吗? – 2012-02-23 15:38:19

+1

要获得您的问题的良好答案,您需要指定有关此问题的更多详细信息。你在使用ASP.NET/WPF/Winforms/Silverlight吗?你的代码现在如何? – edvaldig 2012-02-23 15:40:16

+0

我正在使用winforms – user1051434 2012-02-23 15:41:38

回答

1

有两个面板,dock将一个填充到表单中,但要确保浮动面板是Forms的控件集合的一部分,而不是浮动面板的集合。有时候更难与设计师做。

示例应用程序:

public partial class Form1 : Form { 
    Panel backPanel; 
    Panel floatPanel; 

    public Form1() { 
    InitializeComponent(); 

    floatPanel = new Panel(); 
    floatPanel.BorderStyle = BorderStyle.FixedSingle; 
    floatPanel.SetBounds(0, 0, 128, 64); 
    this.Controls.Add(floatPanel); 

    backPanel = new Panel(); 
    backPanel.Dock = DockStyle.Fill; 
    backPanel.AutoScrollMinSize = new Size(0, 1000); 
    this.Controls.Add(backPanel); 
    } 
} 

这对于浮动面板这是在现有面板的顶部。不会让gui感觉到很多,因为如果控件滚动到浮动面板下面会发生什么情况?

如果您正在寻找顶部面板以使其位于滚动部分的上方,请按相反顺序添加两个面板,并将“顶部”面板的底部填充到顶部,以便顶部面板不会放在“后面“滚动面板。

示例应用程序:

public partial class Form1 : Form { 
    Panel backPanel; 
    Panel topPanel; 

    public Form1() { 
    InitializeComponent(); 

    backPanel = new Panel(); 
    backPanel.Dock = DockStyle.Fill; 
    backPanel.AutoScrollMinSize = new Size(0, 1000); 
    this.Controls.Add(backPanel); 

    topPanel = new Panel(); 
    topPanel.Height = 64; 
    topPanel.Dock = DockStyle.Top; 
    this.Controls.Add(topPanel); 
    } 
} 
+0

如果我有BindingNavigator,该怎么办?我怎样才能把它固定在上面? Dock属性不起作用。 – user1051434 2012-02-23 18:18:06

+0

@ user1051434为什么它不起作用?我用BindingNavigator控件替换了“topPanel”控件,它工作得很好。它移到了表单的顶部,滚动面板就在它的正下方。这是基于第二个例子,因为它听起来像你并没有试图“浮动”控制面板。 – LarsTech 2012-02-23 18:25:20

+0

当我滚动页面时,bindingNavigator使用dockStyle消失。 – user1051434 2012-02-23 18:50:22