* UITreeView: 增加了点击文字改变CheckBox状态的NodeClickChangeCheckBoxes
This commit is contained in:
parent
55c8009f05
commit
0c89806af0
@ -26,6 +26,7 @@
|
||||
* 2022-04-01: V3.1.2 增加水平滚动条
|
||||
* 2022-04-01: V3.1.2 自定义行颜色,可通过代码给颜色值,SetNodePainter
|
||||
* 2022-05-15: V3.1.8 修复了一个设计期显示错误
|
||||
* 2022-05-15: V3.1.8 增加了点击文字改变CheckBox状态的NodeClickChangeCheckBoxes
|
||||
******************************************************************************/
|
||||
|
||||
using System;
|
||||
@ -127,6 +128,14 @@ namespace Sunny.UI
|
||||
set => view.TreeNodeStateSync = value;
|
||||
}
|
||||
|
||||
[Description("点击文字改变CheckBox状态"), Category("SunnyUI")]
|
||||
[DefaultValue(false)]
|
||||
public bool NodeClickChangeCheckBoxes
|
||||
{
|
||||
get => view.NodeClickChangeCheckBoxes;
|
||||
set => view.NodeClickChangeCheckBoxes = value;
|
||||
}
|
||||
|
||||
private void View_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
|
||||
{
|
||||
AfterLabelEdit?.Invoke(this, e);
|
||||
@ -1168,6 +1177,27 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool NodeClickChangeCheckBoxes { get; set; }
|
||||
|
||||
protected override void OnNodeMouseClick(TreeNodeMouseClickEventArgs e)
|
||||
{
|
||||
base.OnNodeMouseClick(e);
|
||||
if (CheckBoxes && NodeClickChangeCheckBoxes)
|
||||
{
|
||||
int drawLeft = e.Node.Bounds.X;
|
||||
if (ImageList != null)
|
||||
drawLeft -= ImageList.ImageSize.Width;
|
||||
|
||||
if (e.Location.X > drawLeft)
|
||||
{
|
||||
e.Node.Checked = !e.Node.Checked;
|
||||
DicNodeStatus[e.Node.GetHashCode()] = false;
|
||||
SetChildNodeCheckedState(e.Node, e.Node.Checked);
|
||||
SetParentNodeCheckedState(e.Node, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user