MindFusion.Diagramming for WinForms常见问题集锦(十七):NodeCreating事件未触发

MindFusion.Diagramming for WinForms是一款能够帮助你轻松创建流程图和示意图的.NET控件。本文整理了用户在使用中遇见的相关问题,希望对您有所帮助。

MindFusion.Diagramming for WinForms是一个能帮助你创建工作流和进程图表的.NET控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图表框,表格和箭头类型,将其归类分派给其他并结合成复杂的结构。该控件提供超过预先定义的50多种图表框,如自定义设计样式和对图表框着色等。

MindFusion.Diagramming for WinForms最新试用版

Q:我正在使用NodeListView允许用户将ShapeNodes拖到DiagramView上,但是,NodeCreating事件似乎并未触发。

A:这引发了拖放事件,您可以像这样从DragOver处理程序检查节点类型-

void diagramView_DragOver(object sender, DragEventArgs e){e.Effect = DragDropEffects.Copy;var draggedNode = e.Data.GetData(typeof(DraggedNode)) as DraggedNode;if (draggedNode != null && draggedNode.Node is TableNode)e.Effect = DragDropEffects.None;}

Q:是否可以在ContainerNode的标题栏中添加自定义控件/strong>

A:如果您使用派生类,则可以遵循ContainerNode用于显示其折叠图标的相同方法-

class TestWidget : MindFusion.Diagramming.Manipulators.Manipulator{public TestWidget(DiagramItem item, RectangleF bounds): base(item){this.bounds = bounds;}public override bool HitTest(PointF point){return bounds.Contains(point);}public override void Draw(IGraphics graphics){graphics.DrawRectangle(Pens.Blue, bounds);}public override void OnClick(PointF point){MessageBox.Show("click");}public override bool SupportClipping(){return false;}public override void AddToRepaintRect(ref RectangleF rect){}RectangleF bounds;}class TestNode: ContainerNode{public TestNode(Diagram diagram): base(diagram){AddManipulator(new TestWidget(this, new RectangleF(2, 2, 4, 4)));}}

否则,您可以使用AttachTo方法将一些辅助ControlNode或ShapeNode对象附加到容器,并处理其click事件以对其进行修改。

Q:鼠标悬停在容器标题的一小部分而不是整个容器上时,如何添加工具提示吗/p>

A:如果point在区域内,请尝试从DiagramNode.GetToolTip(point)覆盖返回,否则返回基本结果。

=====================================================

问答持续更新中>>>

MindFusion.Diagramming for WinForms现已加入在线订购,点击此处查看价格~

想要购买MindFusion.Diagramming for WinForms正版授权的朋友欢迎咨询在线客服哦~

MindFusion.Diagramming for WinForms常见问题集锦(十七):NodeCreating事件未触发
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月24日
下一篇 2020年3月24日

相关推荐

发表回复

登录后才能评论