From 0fcb485817c4f41f401e45795274ee2e88a858c2 Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 12 Jun 2023 20:55:49 +0800 Subject: [PATCH] =?UTF-8?q?*=20UIComboTreeView:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=B8=85=E7=A9=BA=E6=8C=89=E9=92=AE=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E5=86=8D=E6=AC=A1=E6=89=93=E5=BC=80=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=EF=BC=8C=E4=B8=8A=E6=AC=A1=E7=9A=84=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E8=BF=98=E6=98=AF=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controls/DropItem/UIComboTreeViewItem.cs | 22 +++------------ SunnyUI/Controls/DropItem/UIDropControl.cs | 1 - SunnyUI/Controls/UIComboTreeView.cs | 2 ++ SunnyUI/Controls/UITreeView.cs | 28 +++++++++++++++++++ 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs index 4274a98c..7278ff95 100644 --- a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs +++ b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs @@ -1,5 +1,4 @@ using System.ComponentModel; -using System.Windows.Forms; namespace Sunny.UI { @@ -207,23 +206,10 @@ namespace Sunny.UI private void uiCheckBox1_CheckedChanged(object sender, System.EventArgs e) { - foreach (TreeNode node in treeView.Nodes) - { - CheckAllChildNodes(node, uiCheckBox1.Checked); - } - } - - public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked) - { - treeNode.Checked = nodeChecked; - foreach (TreeNode node in treeNode.Nodes) - { - node.Checked = nodeChecked; - if (node.Nodes.Count > 0) - { - CheckAllChildNodes(node, nodeChecked); - } - } + if (uiCheckBox1.Checked) + treeView.CheckedAll(); + else + treeView.UnCheckedAll(); } } } diff --git a/SunnyUI/Controls/DropItem/UIDropControl.cs b/SunnyUI/Controls/DropItem/UIDropControl.cs index 1efeec03..edb148a8 100644 --- a/SunnyUI/Controls/DropItem/UIDropControl.cs +++ b/SunnyUI/Controls/DropItem/UIDropControl.cs @@ -566,7 +566,6 @@ namespace Sunny.UI DropDown?.Invoke(this, e); - if (fullControlSelect || MouseLocation.X > Width - 30) { ButtonClick?.Invoke(this, e); diff --git a/SunnyUI/Controls/UIComboTreeView.cs b/SunnyUI/Controls/UIComboTreeView.cs index 28cc71a1..f3b61071 100644 --- a/SunnyUI/Controls/UIComboTreeView.cs +++ b/SunnyUI/Controls/UIComboTreeView.cs @@ -24,6 +24,7 @@ * 2022-11-30: V3.3.0 增加Clear方法 * 2023-02-04: V3.3.1 下拉框增加显示全选选择框 * 2023-04-02: V3.3.4 显示清除按钮 + * 2023-06-12: V3.3.8 修复使用清空按钮后,再次打开下拉框,上次的选择内容还是存在 ******************************************************************************/ using System; @@ -229,6 +230,7 @@ namespace Sunny.UI NeedDrawClearButton = false; Text = ""; TreeView.SelectedNode = null; + TreeView.UnCheckedAll(); Invalidate(); return; } diff --git a/SunnyUI/Controls/UITreeView.cs b/SunnyUI/Controls/UITreeView.cs index af0b0fa5..fa9a5d11 100644 --- a/SunnyUI/Controls/UITreeView.cs +++ b/SunnyUI/Controls/UITreeView.cs @@ -94,6 +94,16 @@ namespace Sunny.UI view.MouseClick += View_MouseClick; } + public void CheckedAll() + { + view.CheckedAll(); + } + + public void UnCheckedAll() + { + view.UnCheckedAll(); + } + protected override void Dispose(bool disposing) { base.Dispose(disposing); @@ -1341,6 +1351,24 @@ namespace Sunny.UI } } } + + public void CheckedAll() + { + foreach (TreeNode node in Nodes) + { + node.Checked = true; + SetChildNodeCheckedState(node, true); + } + } + + public void UnCheckedAll() + { + foreach (TreeNode node in Nodes) + { + node.Checked = false; + SetChildNodeCheckedState(node, false); + } + } } } } \ No newline at end of file