C# SplitContainer 控件詳細用法


1.可以將 Windows 窗體 SplitContainer 控件看作是一個復合體,它是由一個可移動的拆分條分隔的兩個面板。當鼠標指針懸停在該拆分條上時,指針將相應地改變形狀以顯示該拆分條是可移動的。


使用 SplitContainer 控件,可以創建復合的用戶界面(通常,在一個面板中的選擇決定了在另一個面板中顯示哪些對象)。這種排列對於顯示和瀏覽信息非常有用。擁有兩個面板使您可以聚合不同區域中的信息,並且用戶可以輕松地使用拆分條(也稱為“拆分器”)調整面板的大小。

另外,還可以嵌套多個 SplitContainer 控件,並且第二個 SplitContainer 控件可以水平放置,從而產生上面板和下面板。

請注意,SplitContainer 控件默認情況下可通過鍵盤來訪問。如果 IsSplitterFixed 屬性設置為 false,用戶可以按箭頭鍵來移動拆分器。

SplitContainer 控件的 orientation 屬性決定拆分器的方向,而不是決定控件本身的方向。因此,當該屬性設置為 Vertical 時,拆分器將垂直放置,從而產生左面板和右面板。

此外,還應注意 SplitterRectangle 屬性的值是隨 orientation 屬性的值變化的。有關更多信息,請參見 SplitterRectangle 屬性。

還可以限制 SplitContainer 控件的大小和移動。FixedPanel 屬性決定調整 SplitContainer 控件大小后,哪個面板將保持原來的大小,IsSplitterFixed 屬性則決定是否可以通過鍵盤或鼠標來移動拆分器。

常用屬性、方法和事件

FixedPanel 屬性

    * 確定調整 SplitContainer 控件大小后,哪個面板將保持原來的大小。

IsSplitterFixed 屬性

    * 確定是否可以使用鍵盤或鼠標來移動拆分器。

orientation 屬性

    * 確定拆分器是垂直放置還是水平放置。

SplitterDistance 屬性

    * 確定從左邊緣或上邊緣到可移動拆分條的距離(以像素為單位)。

SplitterIncrement 屬性

    * 確定用戶可以移動拆分器的最短距離(以像素為單位)。

SplitterWidth 屬性

    * 確定拆分器的厚度(以像素為單位)。

SplitterMoving 事件

    * 拆分器移動時發生。

SplitterMoved 事件

    * 拆分器移動后發生。

  2.如何:定義拆分窗口中的大小調整和定位行為

用戶可以輕松調整 SplitContainer 控件面板的大小並對其執行各種操作。但是,有時您可能要以編程方式控制拆分器放置的位置以及可以移動的程度。

利用 SplitContainer 控件上的 SplitterIncrement 屬性和其他屬性,您可以根據自己的需要精確控制用戶界面的行為。下表列出了這些屬性。

IsSplitterFixed 屬性

    * 確定拆分器是否可以通過鍵盤或鼠標進行移動。

SplitterDistance 屬性

    * 確定從左邊緣或上邊緣到可移動拆分條的距離(以像素為單位)。

SplitterIncrement 屬性

    * 確定用戶可以移動拆分器的最短距離(以像素為單位)。

  下面的示例修改了 SplitterIncrement 屬性,以創建“對齊拆分器”效果;在用戶拖動拆分器時,它會以 10 個像素(而非默認的 1 個像素)為單位進行遞增。

定義 SplitContainer 調整大小行為
在過程中,將 SplitterIncrement 屬性設置為所需大小,以實現拆分器的“對齊”行為。

在下面的代碼示例中,在窗體的 Load 事件中將 SplitContainer 控件中的拆分器設置為拖動時跳過 10 個像素。

C#
private void Form1_Load(System.Object sender, System.EventArgs e)
{
SplitContainer splitSnapper = new SplitContainer();
splitSnapper.SplitterIncrement = 10;
splitSnapper.Dock = DockStyle.Fill;
splitSnapper.Parent = this;
}
(Visual C#) 在窗體的構造函數中放置以下代碼以注冊事件處理程序。

C#
this.Load += new System.EventHandler(this.Form1_Load);

3.如何:水平拆分窗口水平拆分窗口
在程序中,將 SplitContainer 控件的 orientation 屬性設置為 Horizontal。

C#
public void showSplitContainer()
{
SplitContainer splitContainer1 = new SplitContainer ();
splitContainer1.BorderStyle = BorderStyle.Fixed3D;
splitContainer1.Location = new System.Drawing.Point (74, 20);
splitContainer1.Name = "DemoSplitContainer";
splitContainer1.Size = new System.Drawing.Size (212, 435);
splitContainer1.TabIndex = 0;
splitContainer1.Orientation = orientation.Horizontal;
this.Controls.Add (splitContainer1);

}

4.如何:用 Windows 窗體創建多窗格用戶界面在下面的過程中,將創建一個類似於在 Microsoft Outlook 中使用的多窗格用戶界面,該界面中包含“文件夾列表”、“郵件”窗格和“預覽”窗格。這種排列主要是通過在窗體上停靠控件實現的。在停靠控件時,可以確定控件要緊靠父容器的哪個邊緣。這樣,如果將 Dock 屬性設置為 Right,控件的右邊緣將停靠在它的父控件的右邊緣。此外,控件停靠邊緣的大小將調整為與它的容器控件的大小匹配。有關 Dock 屬性工作方式的更多信息,請參見如何:在 Windows 窗體上停靠控件。該過程的重點是在窗體上排列 SplitContainer 和其他控件,而不是添加功能以使得應用程序類似於 Microsoft Outlook。若要創建該用戶界面,請將所有控件放到 SplitContainer 控件(其左側面板中包含 TreeView 控件)中。SplitContainer 控件的右側面板中包含另一個 SplitContainer 控件,其中 ListView 控件在 RichTextBox 控件上方。這些 SplitContainer 控件支持在窗體上分別調整其他控件的大小。可以改編此過程中的方法,制作出您自己的自定義用戶界面。以編程方式創建 Outlook 樣式的用戶界面在窗體內,聲明組成用戶界面的每個控件。本示例使用 TreeView、ListView、SplitContainer 和 RichTextBox 控件來創建類似於 Microsoft Outlook 的用戶界面。

C#
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms. SplitContainer splitContainer2;
private System.Windows.Forms. SplitContainer splitContainer1;

創建定義用戶界面的過程。下面的代碼設置屬性,以使窗體類似於 Microsoft Outlook 的用戶界面。但是,通過使用其他控件或使它們停靠在不同的位置,一樣可以輕松創建同樣靈活的其他用戶界面。
C#
public void  createOutlookUI()
{
// Create an instance of each control being used.
treeView1 = new System.Windows.Forms.TreeView();
listView1 = new System.Windows.Forms.ListView();
richTextBox1 = new System.Windows.Forms.RichTextBox();
splitContainer2 = new System.Windows.Forms.SplitContainer();
splitContainer1 = new System.Windows.Forms.SplitContainer();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM