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);

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;
            }

        }

2)事件调用

WorkFlowNode node = null;
            OnNodeAdding(
ref node);
            
if (node == nullreturn;
            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界面注册事件
直接双击该控件对应的事件,跟一般使用控件的事件一样