Top / .NET備忘録 / 07.Form / 05.ActiveControl

SplitContainer 等の ContainerControl 上にフォーカスがある場合、ActiveConrol プロパティは、ContainerControl を返します。

VB6.0 と同様にするため、ActiveControl プロパティを new します。

 public new Control ActiveControl
 {
     get
     {
          Control activeCtrl = base.ActiveControl;
          while (activeCtrl != null)
          {
              // IContainerControl の最上位まで登る
              IContainerControl container = activeCtrl as IContainerControl;
              if (container == null) {
                  // 最上位まで上ったら、親がコンテナになるまで降りる
                  while (activeCtrl != null) {
                      if (activeCtrl.Parent is IContainerControl) {
                          break;
                      }
                      activeCtrl = activeCtrl.Parent;
                  };
                  return activeCtrl;
              }
              activeCtrl = container.ActiveControl;
          }
          return activeCtrl;
     }
     set { base.ActiveControl = value; }
 }



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-07-10 (水) 01:14:10 (1565d)