示例#1
0
        /// <summary>
        /// サブディレクトリが作成された時の処理。
        /// </summary>
        private void SubdirCreated(string path)
        {
            //	アイテムが展開されていない場合は何もしない(再展開時に更新されるので)
            if (!this.IsExpanded)
            {
                if (this.Nodes.Count == 0)
                {
                    this.Nodes.Add("PH");                     // 子ノード数が0だと次回展開することができないのでダミー追加
                }
                return;
            }

            //	作成されたディレクトリの親に対応するアイテムを検索
            FolderTreeNode parentNode;
            string         parentPath = System.IO.Path.GetDirectoryName(path);

            if (string.Compare(parentPath, m_ShellItem.Path, true) == 0)
            {
                parentNode = this;
            }
            else
            {
                parentNode = FindChild(parentPath);
                if (parentNode == null)
                {
                    return;
                }
            }

            FolderTreeNode node;

            try
            {
                //	作成されたディレクトリに対応するノードを作成
                node = new FolderTreeNode(new ShellItem(path));
            }
            catch (Exception)
            {
                //	作成された直後に削除されたりすると対応する ShellItem が作れずに例外が発生するので普通にリターン
                return;
            }

            //	作成されたディレクトリに対応するアイテムを追加
            node.UpdateChildren();

            //if (this.TreeView != null)
            //    this.TreeView.BeginUpdate();

            parentNode.Nodes.Add(node);

            //if (this.TreeView != null)
            //{
            //    this.TreeView.Sort();
            //    this.TreeView.EndUpdate();
            //}
        }
示例#2
0
        /// <summary>
        ///	BeforeExpand イベントトリガをオーバーライド。
        /// </summary>
        protected override void OnBeforeExpand(TreeViewCancelEventArgs e)
        {
            FolderTreeNode ftn = e.Node as FolderTreeNode;

            if (ftn != null)
            {
                //	ファイル監視開始
                ftn.StartFileWatch();

                //	子ノード更新
                ftn.UpdateChildren();
            }
            base.OnBeforeExpand(e);
        }