1.事件参数类
public class WorkFlowEventArgs
{
private WorkFlow m_workFlow;
public WorkFlow workFlow
{
get { return m_workFlow; }
set { m_workFlow = value; }
}
public WorkFlowEventArgs(WorkFlow Workflow)
{
m_workFlow = Workflow;
}
public static WorkFlowEventArgs GetInstance(WorkFlow workflow)
{
WorkFlowEventArgs c = new WorkFlowEventArgs(workflow);
return c;
}
}
public delegate void WorkFlowEventHandler(object sender,WorkFlowEventArgs e);
{
private WorkFlow m_workFlow;
public WorkFlow workFlow
{
get { return m_workFlow; }
set { m_workFlow = value; }
}
public WorkFlowEventArgs(WorkFlow Workflow)
{
m_workFlow = Workflow;
}
public static WorkFlowEventArgs GetInstance(WorkFlow workflow)
{
WorkFlowEventArgs c = new WorkFlowEventArgs(workflow);
return c;
}
}
public delegate void WorkFlowEventHandler(object sender,WorkFlowEventArgs e);
2 .最基层事件控制
1) 公布事件
public event NodeEventdHandler NodeAdding;
/// <summary>
/// 节点添加
/// </summary>
/// <param name="node"></param>
public void OnNodeAdding(ref WorkFlowNode node)
{
if (NodeAdding != null)
{
NodeEvnetArgs NodeArg = new NodeEvnetArgs(node);
NodeAdding(this, NodeArg);
node = NodeArg.Node;
}
}
/// <summary>
/// 节点添加
/// </summary>
/// <param name="node"></param>
public void OnNodeAdding(ref WorkFlowNode node)
{
if (NodeAdding != null)
{
NodeEvnetArgs NodeArg = new NodeEvnetArgs(node);
NodeAdding(this, NodeArg);
node = NodeArg.Node;
}
}
2)事件调用
WorkFlowNode node = null;
OnNodeAdding(ref node);
if (node == null) return;
AddNodeToListView(node);
m_workFlow.nodeCollection.Add(node);
OnNodeAdded(node);
OnNodeAdding(ref node);
if (node == null) return;
AddNodeToListView(node);
m_workFlow.nodeCollection.Add(node);
OnNodeAdded(node);
3中间层事件继续对外发布
public event NodeEventdHandler NodeAdding
{
add
{
t_WorkFlow.NodeAdding += value;
}
remove
{
t_WorkFlow.NodeAdding -= value;
}
}
4界面注册事件
直接双击该控件对应的事件,跟一般使用控件的事件一样