如何避免TreeView中Checked事件死迴圈

2021-08-25 10:00:25 字數 684 閱讀 7322

在treeview的aftercheck事件中新增處理**,設定其它相關treenode的checked屬性。

問題:通過**改變treenode.checked屬性同樣會觸發treeview.aftercheck事件。若節點a的狀態改變時需要自動改變節點b的選中狀態,且節點b的狀態改變時也需要自動改變節點a的選中狀態,即a和b互為相關節點時。此實現將導致死迴圈。

解決辦法:

aftercheck的事件中的第二個引數(e as system.windows.forms.treevieweventargs)物件具有屬性action,其值標識了是何種行為解決了aftercheck事件。對於通過**設定treenode.checked屬性所引發的aftercheck事件,該引數的action屬性值為unknow。假若我們希望節點狀態的改變不會遞迴擴散,則可以在aftercheck的響應**裡判斷該屬性,在值為unknow時不進行操作。

舉例:private sub trauth_aftercheck(byval sender as object, byval e as system.windows.forms.treevieweventargs) handles trauth.aftercheck

if e.action <> treeviewaction.unknown then

'''**執行

end if

end sub

請教qtp中如何操作treeview控制項

qtp中執行 window mywindow wintreeview mytreeview getitem 0 時,出了如下的錯誤 cannot identify the specified item of the tucroottree object.confirm that the specif...

如何避免 如何避免鋼板彈簧受損

鋼板彈簧是卡車上的貴重部件之一,它一旦發生故障或損壞,會影響車輛的行駛和操縱,甚至發生意外事故,所以司機師傅們平時要養成良好的駕駛習慣,避免卡車鋼板彈簧受損。鋼板彈簧在卡車懸架系統中起著緩衝作用,還擔負傳遞所有各向的力和力矩,以及決定車輪運動的軌跡,起到導向的作用。相比於氣囊式懸架,鋼板彈簧因為其結...

如何避免程式設計中的BUG

這段時間的開發總是在自己給自己挖坑,進入了乙個創造bug登峰造極的階段,前兩天看了一篇類似雞湯的東西 為什麼你有10年經驗,但成不了專家 上面提到了刻意練習度的問題,很有道理,前提是你要進入 自動狀態 簡而言之就是下意識的去做出反應,但是就像有人說的,你的努力程度還到不了跟別人拼天賦的地步,還沒有到...