三狀態 TreeView 擴充套件

2022-01-24 06:33:36 字數 2658 閱讀 4315

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.windows.forms;

using

system.componentmodel;

using

system.drawing;

namespace

utilityclass

private

int imagewidth = 0x12 + 2; //

大小加空隙

//private bool isfirstdifferent = true;

//[defaultvalue(true), description("將第乙個節點作為全選/全不選。")]

//public bool isfirstdifferent

//

//

//set

// //}

public

treeviewex()

//規則1:取消選定

//規則1.1:檢查是否有子節點,需清除所有子節點的選定狀態;

//規則1.2:檢查是否有父節點,如有,則根據兄弟節點的選定狀態修改父節點的選定狀態

//規則2:選定

//規則2.1:檢查是否有子節點,設定所有子節點為選定狀態

//規則2.2:檢查是否有父節點,如有,則根據兄弟節點的選定狀態修改父節點的選定狀態

private

void treeviewex_nodemouseclick(object

sender, treenodemouseclickeventargs e)

else

nodeclick(e.node);

}} }

//////

節點點選

/// ///

點選的節點

public

void

nodeclick(treenode tn)

else

}//////

不管現在節點狀態

///將節點設定為選中

/// ///

待更改狀態的節點

public

void

nodeselected(treenode tn)

//////

不管現在節點狀態

///去掉節點擊中狀態

/// ///

待更改狀態的節點

public

void

nodeunselected(treenode tn)

//////

返回指定節點擊中狀態

///有三種狀態 unchecked 未選中 indeterminate 部分選中 checked 選中

/// ///

節點是否被選中

///返回選中狀態資訊

public

checkstate nodecheckstate(treenode tn)

}//////

半選與全選返回 true 否則返回 false

/// public

bool

ischecked(treenode tn)

//////

將所有子節點全不選

/// public

void

nodeunselected()

}//////

將所有子節點全選

/// public

void

nodeselected()

}//設定節點擊定狀態:

//規則.1:檢查是否有子節點,需清除所有子節點的選定狀態;

void

setnodeimg11(treenode tn)

}//設定節點擊定狀態:

//規則.2:檢查是否有父節點,如有,則根據兄弟節點的選定狀態修改父節點的選定狀態

void

setnodeimg12(treenode tn)

if (select

)

else

if(unselect)

else

setnodeimg12(tn.parent);

}//設定節點擊定狀態:

//規則.1:檢查是否有子節點,設定所有子節點為選定狀態

void

setnodeimg21(treenode tn)}}

//設定節點擊定狀態:

//規則.2:檢查是否有父節點,如有,則根據兄弟節點的選定狀態修改父節點的選定狀態

void

setnodeimg22(treenode tn)

if (select

)

else

if(unselect)

else

setnodeimg22(tn.parent);

}private

void

initializecomponent()}}

TreeView控制項擴充套件

這是我做第乙個專案遇到的問題 關於許可權分配的問題。當時客戶的要求是這樣 許可權分為父許可權和子許可權,子許可權率屬於父許可權。比如員工的基本資訊管理 父許可權 包括增 刪 改以及查詢 子許可權 當擁有父權限時則說明至少擁有乙個子許可權。我當時第一想法就是用 treeview 控制項來實現,應該還是...

treeview 保持選中狀態

發現當treeview控制項失去焦點的時候,會丟失選中狀態的指示 條目的藍色背景 如果想要保持,只要設定treeview的乙個屬性即可 this.treeview1.hideselection false 但是,發現陰影很淺,但是聊勝於無。在上找到了 大氣象學習園地 的一篇博文 鏈結 剛好說到這個事...

擴充套件有限狀態機

乙個擴充套件有限狀態機m是乙個五元組 t 其中 ls是狀態的有限集合 ls0 s是初始狀態 l 是有限的字元表 lx x1,x2,xk 是乙個向量,表示乙個變數的有限集合 lt 對於t中任意乙個元素t,t 其中s是變遷的起始狀態,i是輸入,p是變遷的條件 它是由x中的變數或者常數參與的邏輯表示式 a...