最近不少朋友对我以前发的一些例子中的流程设计器有一些疑问,以后我会专门写一个流程设计器的例子,这里先写几个开发流程设计器时要用到的小知识点

1.为自定义的Activity添加图标

WF:关于流程设计器的一点补充
为自定义Activity设置成员属性

WF:关于流程设计器的一点补充[System.Drawing.ToolboxBitmap(typeof(wxdActivity), "wxd.bmp")]
WF:关于流程设计器的一点补充
public class wxdActivity : System.Workflow.ComponentModel.Activity

2.为Activity设置外观

WF:关于流程设计器的一点补充    //设计器样式类
WF:关于流程设计器的一点补充
    [ActivityDesignerThemeAttribute(typeof(wxdTheme))]
WF:关于流程设计器的一点补充    
public class wxdActivityDesigner : ActivityDesigner
    }

为自定义Activity设置成员属性

WF:关于流程设计器的一点补充[Designer(typeof(wxdActivityDesigner), typeof(IDesigner))]
WF:关于流程设计器的一点补充
public class wxdActivity : System.Workflow.ComponentModel.Activity

 

如果在继承了SequenceActivity的Activity使用了上面方式定义的主题,可以使用其内部Activity结构不显示,有时不想在流程设计器中对用户暴露太多信息可以用这个方法

WF:关于流程设计器的一点补充

3.为Activity添加右键菜单与数据绑定窗体
有时使用属性栏对Activity进行设置,对用户来说不是很方便,比如有些属性值是用户名,设备名等要从数据库中动态加载的数据,这时为最好提供一个数据绑定窗体向导

 

WF:关于流程设计器的一点补充using System.Workflow.ComponentModel;
WF:关于流程设计器的一点补充
using System.ComponentModel;
WF:关于流程设计器的一点补充
using System.Workflow.ComponentModel.Design;
WF:关于流程设计器的一点补充
using System.Drawing;
WF:关于流程设计器的一点补充
using System.Drawing.Drawing2D;
WF:关于流程设计器的一点补充
using System.ComponentModel.Design;
WF:关于流程设计器的一点补充
using System;
WF:关于流程设计器的一点补充
using System.Collections.Generic;
WF:关于流程设计器的一点补充
namespace wxwinter
}

以上生成的Activity可以在VS中使用,也可以在我以前的流程设计器例子中使用
WF:关于流程设计器的一点补充
WF:关于流程设计器的一点补充
4.为Activity添加属性验证器

WF:关于流程设计器的一点补充using System.Workflow.ComponentModel;
WF:关于流程设计器的一点补充
using System.ComponentModel;
WF:关于流程设计器的一点补充
using System.Workflow.ComponentModel.Design;
WF:关于流程设计器的一点补充
using System.Drawing;
WF:关于流程设计器的一点补充
using System.Drawing.Drawing2D;
WF:关于流程设计器的一点补充
using System.ComponentModel.Design;
WF:关于流程设计器的一点补充
using System;
WF:关于流程设计器的一点补充
using System.Collections.Generic;
WF:关于流程设计器的一点补充
using System.Workflow.ComponentModel.Compiler;
WF:关于流程设计器的一点补充
namespace wxwinter
}

WF:关于流程设计器的一点补充

5.运行时动态将字符串编译为C#可执行代码
(与WF无关,这是C#的基础知识,在作流程设计器时有时会用到)

WF:关于流程设计器的一点补充private void button1_Click(object sender, EventArgs e)
        }

 

文本框中的文本代码

class wxd
{
    public string  setText(System.Windows.Forms.Control ct)
    {       
        ct.Text = "按钮提示文字被我修改了";

        System.Windows.Forms.MessageBox.Show("wxwinter");

        return "ok";
    }
}
WF:关于流程设计器的一点补充
例子:https://files.cnblogs.com/foundation/WindowsApplication1.rar

相关文章: