TreeView

Q1
TreeViewを動的に作成する−1(Arrayオブジェクトを利用)
[内容]
TreeViewを実行時の条件に合わせて作成したい

A1
[解決方法]
Arrayオブジェクトを利用します。

TreeViewや追加したいTreeItemのリファレンスをArrayオブジェクトに格納します。
そのリファレンスに対してAppendメソッドを行うことで、実行時の条件に合った
ツリービューを作成することが出来ます。

  動的に作成したTreeItem名(文字列)を直接指定して、以下の下線部のような
  Appendメソッドを記述することは出来ません。

    var item1 = Form1.TreeView1.CreateItem("Item" + str(n));
    Form1.TreeView1.Append(item1);
    var item2 = Form1.TreeView1.CreateItem("Item" + str(n+1));
    Form1.TreeView1."Item"+str(n).Append(item2);


Arrayオブジェクトの各配列要素には特定の型を指定する必要はなく、個々の要素に
別々の型を持つオブジェクトや数値、文字列などの値を格納することができ、TreeView
クラスのCreateItemメソッドで作成したTreeItemオブジェクトも格納することが出来ます。


[サンプルコード]


下記の例は3階層のTreeItemをparamに指定された数ずつ追加します。
添え字を利用して名称を決定し、作成したTreeItemのリファレンスを同じ添え字を利用してArrayオブジェクトに格納しています。
添え字は100の位が1階層目、10の位が2階層目、1の位が3階層目で、0は最上位の
TreeViewとしています。
/* Arrayオブジェクトに最上位のTreeViewを保存 */
var ItemArray = new Array();
ItemArray[0] = Form1.TreeView1;

/*1階層目 */
for (var i1 = 1; i1 <= param; i1++) {
    /* pItem:上位オブジェクトの添え字、sItem:自オブジェクトの添え字 */
    var pItem = 0;
    var sItem = i1 * 100;
    /* TreeItemを作成し保存。上位オブジェクトにAppend */
    var item = Form1.TreeView1.CreateItem("Item" + str(sItem));
    ItemArray[sItem] = item;
    ItemArray[pItem].Append(item);

    /* 2階層目 */
    for (var i2 = 1; i2 <= param; i2++) {
        /* pItem:上位オブジェクトの添え字、sItem:自オブジェクトの添え字 */
        var pItem = i1 * 100;
        var sItem = i1 * 100 + i2 * 10;
        /* TreeItemを作成し保存。上位オブジェクトにAppend */
        var item = Form1.TreeView1.CreateItem("Item" + str(sItem));
        ItemArray[sItem] = item;
        ItemArray[pItem].Append(item);

        /* 3階層目 */
        for (var i3 = 1; i3 <= param; i3++) {
            /* pItem:上位オブジェクトの添え字、
               sItem:自オブジェクトの添え字 */
            var pItem = i1 * 100 + i2 * 10;
            var sItem = i1 * 100 + i2 * 10 + i3;
            /* TreeItemを作成し保存。上位オブジェクトにAppend */
            var item = Form1.TreeView1.CreateItem("Item" + str(sItem));
            ItemArray[sItem] = item;
            ItemArray[pItem].Append(item);
        }
    }
}
画面イメージ
画面イメージ
ウォッチビュー(オブジェクト)
ウォッチビュー(オブジェクト)


CRSファイル形式のサンプルを
  「Arrayオブジェクトを利用したTreeView動的生成サンプル(Tre_001.zip)
よりご利用いただけます。

管理番号:Tre_001
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ