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