2010-07-07 17 views
2

在我當前的應用程序中,我在一個TabControl的頁面上有一個Tree控件,它位於SplitContainer控件的面板內。樹控件因此可以通過隱藏SplitContainer面板或切換到TabControl中的另一個TabPage來隱藏。如何檢測控件何時不再可見?

在窗體的菜單中,有一些命令作用於樹中當前選擇的節點。我不希望在用戶看不到選定內容時啓用這些選項。

是否有一種簡單的方法來確定何時TreeView不在視圖中,而是單獨訂閱TabControl和SplitContainer的事件?

回答

1

您可以創建一個布爾成員變量。在tabchanged事件中,測試以查看樹視圖選項卡是否被選中並適當地設置變量。此外,訂閱在分隔視圖大小更改時觸發的事件。測試分離器的寬度或高度,以查看您的樹視圖是否隱藏。如果是,請將此處的變量設置爲。然後,你需要做的就是測試你的新成員變量。

0

測試TreeView的Visible屬性。還有一個VisibleChanged事件。

0
if(!myControl.Visible) 
{ 
    // Control is not visible. 
} 

if(myControl.Visible == false) 
{ 
    // Control is not visible. 
} 

或者,可能是更好的選擇將是一個處理程序添加到VisibleChanged事件,在代碼(或使用在設計視圖中的事件標籤):

void myControl_VisibleChanged(object sender, EventArgs e) 
{ 
      TreeView tView = sender as TreeView ; 
      if (tView.Visible) 
      { 
        // Do something. 
      } 
      else 
      { 
       // Do something. 
      } 
} 
相關問題