* 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 增加水平滚动条
|
||||||
* 2022-04-01: V3.1.2 自定义行颜色,可通过代码给颜色值,SetNodePainter
|
* 2022-04-01: V3.1.2 自定义行颜色,可通过代码给颜色值,SetNodePainter
|
||||||
* 2022-05-15: V3.1.8 修复了一个设计期显示错误
|
* 2022-05-15: V3.1.8 修复了一个设计期显示错误
|
||||||
|
* 2022-05-15: V3.1.8 增加了点击文字改变CheckBox状态的NodeClickChangeCheckBoxes
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -127,6 +128,14 @@ namespace Sunny.UI
|
|||||||
set => view.TreeNodeStateSync = value;
|
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)
|
private void View_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
|
||||||
{
|
{
|
||||||
AfterLabelEdit?.Invoke(this, 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