彩票走势图

流程图控件软件开发:FlowChart.NET自定义复合节点(二)

原创|使用教程|编辑:郝浩|2013-06-09 14:11:34.000|阅读 375 次

概述:FlowChart.NET是一个通用的流程图控件,提供了用于创建或编辑图表的直观的用户交互模型。在本文中将会继续创建一个自定义的CompositeNode 类,用于显示在组织中的独立信息,如名称、 说明和图像。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

    FlowChart.NET是一个通用的流程图控件,提供了用于创建或编辑图表的直观的用户交互模型。在前面的教程中,已经说明了一部分如何自定义节点,在本文中将会继续创建一个自定义的CompositeNode 类,用于显示在组织中的独立信息,如名称、 说明和图像。节点将会通过各种公开的属性进行自定义。

4、定义节点属性

    要能够自定义节点,我们需要公开几个属性。在这种情况下,属性只是作为基础组件属性的包装。在构造函数之后添加以下代码:

C#

public MindFusion.Drawing.Pen Stroke
{
    get { return shape.Pen; }
    set { shape.Pen = value; }
}

public MindFusion.Drawing.Brush Fill
{
    get { return shape.Brush; }
    set { shape.Brush = value; }
}

public Image Image
{
    get { return image.Image; }
    set { image.Image = value; }
}

public string Title
{
    get { return title.Text; }
    set { title.Text = value; }
}

public string FullName
{
    get { return fullName.Text; }
    set { fullName.Text = value; }
}

public string Text
{
    get { return text.Text; }
    set { text.Text = value; }
}

Visual Basic

Public Property Stroke() As MindFusion.Drawing.Pen

    Get
        Return _shape.Pen
    End Get
    Set(ByVal value As MindFusion.Drawing.Pen)
        _shape.Pen = value
    End Set

End Property

Public Property Fill() As MindFusion.Drawing.Brush

    Get
        Return _shape.Brush
    End Get
    Set(ByVal value As MindFusion.Drawing.Brush)
        _shape.Brush = value
    End Set

End Property

Public Property Image() As Image

    Get
        Return _image.Image
    End Get
    Set(ByVal value As Image)
        _image.Image = value
    End Set

End Property

Public Property Title() As String

    Get
        Return _title.Text
    End Get
    Set(ByVal value As String)
        _title.Text = value
    End Set

End Property

Public Property FullName() As String

    Get
        Return _fullName.Text
    End Get
    Set(ByVal value As String)
        _fullName.Text = value
    End Set

End Property

Public Property Text() As String

    Get
        Return _text.Text
    End Get
    Set(ByVal value As String)
        _text.Text = value
    End Set

End Property

5、指定默认值

    在组件内容已经加载以及引用到感兴趣的组件已经获得后,默认值可以提供在构造函数中。下面的代码将会设置白色的背景和黑色的边界作为新节点的默认值:

C#

Stroke = new MindFusion.Drawing.Pen(Color.Black, 0);
Fill = new MindFusion.Drawing.SolidBrush(Color.White);


Visual Basic

Stroke = New MindFusion.Drawing.Pen(Color.Black, 0)
Fill = New MindFusion.Drawing.SolidBrush(Color.White)

6、使用自定义节点类

    假设我们有一个现成的WinForms应用程序,并且包含一个名为diagram1图变量,两个图像已经被添加到这个应用程序作为资源,分别命名为Image1和Image2。下面的代码创建了两个OrgChartNode类的新实例,并使用一个链接将这两进行连接:

C#

OrgChartNode node1 = new OrgChartNode(diagram1);
node1.Bounds = new RectangleF(20, 10, 80, 40);
node1.Title = "CEO";
node1.FullName = "John Smith";
node1.Text = "Our beloved leader. \r\n" +
    "The CEO of this great corporation.";
node1.Image = Properties.Resources.Image1;
diagram1.Nodes.Add(node1);

OrgChartNode node2 = new OrgChartNode(diagram1);
node2.Bounds = new RectangleF(60, 60, 80, 40);
node2.Title = "CIO";
node2.FullName = "Bob Smith";
node2.Text = "The CIO of this great corporation.";
node2.Image = Properties.Resources.Image2;
diagram1.Nodes.Add(node2);

diagram1.Factory.CreateDiagramLink(node1, node2);

Visual Basic

Dim node1 As New OrgChartNode(diagram1)
node1.Bounds = New RectangleF(20, 10, 80, 40)
node1.Title = "CEO"
node1.FullName = "John Smith"
node1.Text = "Our beloved leader. \r\n" & _
    "The CEO of this great corporation."
node1.Image = My.Resources.Image1
diagram1.Nodes.Add(node1)

Dim node2 = New OrgChartNode(diagram1)
node2.Bounds = New RectangleF(60, 60, 80, 40)
node2.Title = "CIO"
node2.FullName = "Bob Smith"
node2.Text = "The CIO of this great corporation."
node2.Image = My.Resources.Image2
diagram1.Nodes.Add(node2)

diagram1.Factory.CreateDiagramLink(node1, node2)

    运行应用程序将会给出类似于下面的图片的结果:

Flowchart,复合节点


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP