C TreeView使用技巧

2021-09-06 11:48:28 字數 2360 閱讀 7578

節點勾選設定

treeview樹中節點勾選要求:

1、不選中乙個節點,則其所有的子節點都不被選中。

2、選中乙個節點,則其所有的子節點都被選中。

3、當乙個節點的所有子節點都沒有被選中時,該節點也沒有被選中。

4、當乙個節點的所有子節點中有乙個被選中時,則該節點也被選中。

**中對事件引數e.action的判斷,可以避免在改變節點的checked的狀態時,再次進入aftercheck(),這樣當在aftercheck()中有其他邏輯響應時,可以做到每次勾選時,其他邏輯也只響應一次。

private

void treeview_aftercheck(object

sender, treevieweventargs e)

}//設定子節點狀態

private

void setchildnodecheckedstate(treenode currnode, bool

ischeckedornot)

}//設定父節點狀態

private

void setparentnodecheckedstate(treenode currnode, bool

ischeckedornot)

else

//如果當前節點沒有被選中,則當其父節點的子節點有乙個被選中時,父節點被選中,否則父節點不被選中

}currnode.parent.checked =checkedflag;

setparentnodecheckedstate(currnode.parent, checkedflag);

}}

treeview隱藏部分節點

winform中的treeview沒法根據每個節點的情況設定是否有checkbox,只能用checkboxes設定整個樹是否有checkbox,可通過如下方式隱藏部分節點的checkbox。

this.treeview1.checkboxes = true

;this.treeview1.drawmode =treeviewdrawmode.ownerdrawall;

this.treeview1.drawnode += new drawtreenodeeventhandler(treeview1_drawnode);

隱藏節點:

void treeview1_drawnode(object

sender, drawtreenodeeventargs e)

[structlayout(layoutkind.sequential, pack = 8, charset =charset.auto)]

private

struct

tvitem

[dllimport(

"user32.dll

", charset =charset.auto)]

private

static

extern intptr sendmessage(intptr hwnd, int msg, intptr wparam, ref

tvitem lparam);

private

const

int tvif_state = 0x8

;

private

const

int tvis_stateimagemask = 0xf000

;

private

const

int tv_first = 0x1100

;

private

const

int tvm_setitem = tv_first + 63

;

private

void

hidecheckbox(treeview tvw, treenode node)

treeview遞迴載入節點

c#遍歷指定資料夾下所有子資料夾及檔案並新增到目錄樹:

private

void form1_load(object

sender, eventargs e)

private

void getfiles(string

filepath, treenode node)

directoryinfo chldfolders =folder.getdirectories();

foreach (directoryinfo chldfolder in

chldfolders)

}

C TreeView控制項的使用

treeview控制項的使用 1,實現treeview中 選擇結點,把當前結點的狀態傳遞到孩子結點中,通過結點的選擇後觸發事件來實現 如下 遞迴函式 遞迴的吧父親接到的選擇狀態傳遞給孩子結點 當前結點 當前結點的選擇狀態 private void refreshchildnode treenode ...

VC中CTreeView控制項的使用

vc中ctreeview控制項的使用 這次做乙個模型庫管理系統,裡面用到了一些基本的控制項。現在把一些經驗總結一下。以免日後忘記。一般的方法什麼的查查資料也就解決了,這裡主要講我碰到的一些比較細節的東西。1.清空treeview裡的所有內容,並重新填充 剛開始的時候,能用deleteallitems...

c treeView 繫結集合

public static listconverttotreeviewdata 向treeview填充資料 要填充的資料 最高類別的父類別 public static bool insertdatatotreeview treeview treeview,listtreedatas,int pid ...