2

私の現在のアプリでは、SplitContainer コントロールのパネル内にある TabControl のページに Tree コントロールがあります。したがって、SplitContainer パネルを非表示にするか、TabControl 内の別の TabPage に切り替えることで、ツリー コントロールを非表示にすることができます。

フォームのメニューには、ツリーで現在選択されているノードに作用するコマンドがあります。ユーザーが選択内容を確認できない場合、これらのオプションを有効にしたくありません。

TabControl と SplitContainer の両方のイベントを個別にサブスクライブせずに、TreeView がいつ表示されなくなるかを判断する簡単な方法はありますか?

4

3 に答える 3

1

ブール値のメンバー変数を作成できます。tabchanged イベントで、ツリービュー タブが選択されているかどうかをテストし、変数を適切に設定します。また、分割ビューのサイズが変更されたときに発生するイベントをサブスクライブします。スプリッターの幅または高さをテストして、ツリービューが非表示になっているかどうかを確認します。そうである場合は、ここの変数を に設定します。あとは、新しいメンバー変数をテストするだけです。

于 2010-07-07T21:37:31.717 に答える
0

TreeView の Visible プロパティをテストします。VisibleChanged イベントもあります。

于 2010-07-07T21:37:21.530 に答える
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.
            }
}
于 2011-05-14T21:57:13.283 に答える