반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 한번에 체크
- 하위노드
- nodejs
- MSSQL
- ChatGPT
- treeview
- sql 서버
- SQL Server
- jQuery
- 윈폼
- 깃허브
- json
- html 코드
- 로깅
- CheckAllChildNodes
- 깜빡임
- body
- checkbox
- header
- Compare
- input
- Git
- SSMS
- WinForm
- 비교
- github
- C#
- ejs
- 초기설정
- footer
Archives
- Today
- Total
타닥타닥 민타쿠
C# 윈폼(Winform) 자식(하위) 노드까지 한번에 체크하기 본문
반응형
트리뷰의 자식 노드까지 전체 체크, 전체 체크해제 기능은 AfterCheck 이벤트를 통해 간단히 만들 수 있는데,
친절하게도 공식 문서의 TreeView.AfterCheck Event 페이지에 자식 노드의 체크 기능까지 같이 나와있다.
코드는 아래와 같다.
// Updates all child tree nodes recursively.
private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
foreach(TreeNode node in treeNode.Nodes)
{
node.Checked = nodeChecked;
if(node.Nodes.Count > 0)
{
// If the current node has child nodes, call the CheckAllChildsNodes method recursively.
this.CheckAllChildNodes(node, nodeChecked);
}
}
}
// NOTE This code can be added to the BeforeCheck event handler instead of the AfterCheck event.
// After a tree node's Checked property is changed, all its child nodes are updated to the same value.
private void node_AfterCheck(object sender, TreeViewEventArgs e)
{
// The code only executes if the user caused the checked state to change.
if(e.Action != TreeViewAction.Unknown)
{
if(e.Node.Nodes.Count > 0)
{
/* Calls the CheckAllChildNodes method, passing in the current
Checked value of the TreeNode whose checked state changed. */
this.CheckAllChildNodes(e.Node, e.Node.Checked);
}
}
}
반응형
'개발 > Winform' 카테고리의 다른 글
C# Winform(윈폼) 트리뷰 체크박스 더블클릭 버그 방지 해결책 (0) | 2022.07.22 |
---|---|
C# 객체 복사 (Deep Copy) 클래스 (0) | 2022.07.19 |
윈폼 테이블 변경이 느릴 때(C# Winform TableLayoutPanel Suspend) (0) | 2021.09.10 |
Comments