在我當前的應用程序中,我在一個TabControl的頁面上有一個Tree控件,它位於SplitContainer控件的面板內。樹控件因此可以通過隱藏SplitContainer面板或切換到TabControl中的另一個TabPage來隱藏。如何檢測控件何時不再可見?
在窗體的菜單中,有一些命令作用於樹中當前選擇的節點。我不希望在用戶看不到選定內容時啓用這些選項。
是否有一種簡單的方法來確定何時TreeView不在視圖中,而是單獨訂閱TabControl和SplitContainer的事件?
在我當前的應用程序中,我在一個TabControl的頁面上有一個Tree控件,它位於SplitContainer控件的面板內。樹控件因此可以通過隱藏SplitContainer面板或切換到TabControl中的另一個TabPage來隱藏。如何檢測控件何時不再可見?
在窗體的菜單中,有一些命令作用於樹中當前選擇的節點。我不希望在用戶看不到選定內容時啓用這些選項。
是否有一種簡單的方法來確定何時TreeView不在視圖中,而是單獨訂閱TabControl和SplitContainer的事件?
您可以創建一個布爾成員變量。在tabchanged事件中,測試以查看樹視圖選項卡是否被選中並適當地設置變量。此外,訂閱在分隔視圖大小更改時觸發的事件。測試分離器的寬度或高度,以查看您的樹視圖是否隱藏。如果是,請將此處的變量設置爲。然後,你需要做的就是測試你的新成員變量。
測試TreeView的Visible屬性。還有一個VisibleChanged事件。
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.
}
}