protected override void OnMouseDown(DataGridViewCellMouseEventArgs e) { if (e.Location.X <= base.InheritedStyle.Padding.Left) { TreeGridNode owningNode = this.OwningNode; if (owningNode != null) { if ((this.IsHaveCheckBox && (e.Location.X > ((base.InheritedStyle.Padding.Left - this.ImageWidth) - this.CheckSize))) && this.DrawCheckBox) { if (owningNode._CheckState == CheckState.Unchecked) { owningNode._CheckState = CheckState.Checked; } else { owningNode._CheckState = CheckState.Unchecked; } this._RunCheckLate = true; owningNode.BaseTGV.RefreshCheckStatus(owningNode, true, false); } else { owningNode.BaseTGV.InExpandCollapseMouseCapture = true; if (owningNode.IsExpanded) { owningNode.Collapse(); } else { owningNode.Expand(); } } } } }
private void SetChildrenCheckStatus(TreeGridNode node, CheckState pCheckState, bool pChange = false) { if (node != null) { if (node.HasChildren || this.VirtualNodes) { if (pChange) { this.InExpandCollapseMouseCapture = true; if (pCheckState == CheckState.Unchecked) { node.Collapse(); } else { node.Expand(); } } } else { TreeGridNodeEventBase e = new TreeGridNodeEventBase(node); this.OnCheckedChanged(this, e); } base.Invalidate(); foreach (TreeGridNode node2 in node.Nodes) { node2._CheckState = pCheckState; this.SetChildrenCheckStatus(node2, pCheckState, pChange); } } }
protected override void OnMouseDoubleClick(DataGridViewCellMouseEventArgs e) { if (e.Location.X > base.InheritedStyle.Padding.Left) { TreeGridNode owningNode = this.OwningNode; if (owningNode != null) { if (owningNode.HasChildren || owningNode.BaseTGV.VirtualNodes) { owningNode.BaseTGV.InExpandCollapseMouseCapture = true; if (owningNode.IsExpanded) { owningNode.Collapse(); } else { owningNode.Expand(); } } else { if (owningNode._CheckState == CheckState.Unchecked) { owningNode._CheckState = CheckState.Checked; } else { owningNode._CheckState = CheckState.Unchecked; } owningNode.BaseTGV.RefreshCheckStatus(owningNode, true, false); } } } }