HOW TO:控制停駐行為

更新:2007 年 11 月

當停駐功能啟用時,控制項加入至表單的順序會影響控制項在螢幕上的配置。如果沒有以正確的順序加入控制項,控制項就不會始終出現在螢幕上的預定位置。

您將控制項加入至表單的順序會影響疊置順序 (Z-order),而當父控制項內停駐多個控制項時,這個疊置順序便會決定配置邏輯。第一個加入至父控制項的控制項會出現在疊置順序的底部,之後加入的控制項則會依順序放置在上層。當您嘗試將兩個控制項停駐在父控制項中的相同區域使這兩個控制項彼此相鄰時,在疊置順序較後面的控制項在結果配置中會取得優先權。例如,如果兩個控制項的 Dock 屬性都設定為 Top,在一般案例中,位於疊置順序較後面的控制項在螢幕上會出現在父控制項的最上層。

然而,當控制項的 Dock 屬性設定為 Fill 時,這個特性可能會導致一個控制項遮住另一個控制項。例如,以錯誤順序加入表單的兩個控制項,可能會出現在螢幕的最上層,其中一個控制項遮住另一個控制項,而原本的用意只是要將其中一個控制項放在該位置。

如果發生任何配置問題,就必須調整受影響之控制項的疊置順序。這時會根據是否為使用設計工具將控制項加入至表單,決定採取不同的步驟來修正這個問題。

若要控制停駐配置

  • 修正相關控制項加入至表單的順序。

    請參考下面範例,這個範例是以程式設計方式,將 TreeView 控制項和 Button 控制項加入至 Panel 控制項。TreeView 控制項的 Dock 屬性是設定為 Fill,而 Button 控制項的 Dock 屬性則設定為 Top。TreeView 控制項部分遮住了 Button 控制項。將 TreeViewButton 控制項加入至 Panel 的程式碼看起來很像下列程式碼:

    this.panel1.Controls.Add(this.button1);
    this.panel1.Controls.Add(this.treeView1);
    

    若要修正這個問題,請變更將這些控制項加入至面板的順序。

    this.panel1.Controls.Add(this.treeView1);
    this.panel1.Controls.Add(this.button1);
    

    或者,請使用這些控制項上的 BringToFrontSendToBack 方法。

若要使用設計工具控制停駐配置

  1. 選取出現在表單錯誤位置的其中一個控制項。

  2. 根據需要的配置,以滑鼠右鍵按一下控制項,並選取 [移到最下層]。

    -或-

    以滑鼠右鍵按一下控制項,並選取 [移到最上層]。

  3. 如果有牽涉到額外的控制項,您可以視需要對其他控制項重複步驟 2,直到停駐行為完成修正。

注意事項:

如果有牽涉到多個控制項,我們建議您使用文件大綱視窗來控制疊置順序。

請參閱

概念

.NET Compact Framework HOW TO 主題