예제 #1
0
        private void ExpandNode(TreeListViewNode node, bool expand)
        {
            if (expand)
            {
                if ((node.IsExpanded) || (node.Nodes.Count == 0))
                {
                    return;
                }

                node.Expand();
            }
            else
            {
                if (!node.IsExpanded)
                {
                    return;
                }

                node.Collapse();
            }

            var top_item_index = 0;

            /* 現在のスクロール位置と選択ノードをバックアップ */
            if (Items.Count > 0)
            {
                top_item_index = TopItem.Index;
            }

            UpdateListView();

            TopItem = Items[top_item_index];
        }
예제 #2
0
 private Image GetNodeIcon(TreeListViewNode node)
 {
     if (node.Nodes.Count > 0)
     {
         return((node.IsExpanded) ? (ICON_TREE_NODE_CONTAINER_EXPAND) : (ICON_TREE_NODE_CONTAINER_COLLAPSE));
     }
     else
     {
         return(null);
     }
 }
예제 #3
0
        private ListViewItem CreateListViewItem(TreeListViewNode node)
        {
            var item = new ListViewItem();

            item.Text = (new string(' ', node.Level)) + node.Text;
            item.Tag  = node;

            for (var value_index = 0;
                 (value_index < (Columns.Count - 1)) && (value_index < node.Values.Count);
                 value_index++
                 )
            {
                var item_value = node.Values[value_index];
                var item_sub   = new ListViewItem.ListViewSubItem();

                item_sub.Text = item_value.ToString();
                item_sub.Tag  = item_value;

                item.SubItems.Add(item_sub);
            }

            return(item);
        }
예제 #4
0
 private int GetNodeDrawOffset(TreeListViewNode node)
 {
     return(node.Level * GetNodeLevelOffset());
 }