2012-02-23 50 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