⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flowdisposal.cs

📁 c#定义XML
💻 CS
字号:
/*
 *author: l_dragon  email:l_dragon2000@163.com
 * last update:2003/04/03
 * */
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace gdiFlow
{
	/// <summary>
	/// FlowDisposal 的摘要说明。
	/// </summary>
	public class FlowDisposal
	{
		public Double dblDisposalId=0;//处理过程ID, DISPOSAL_ID			
		public Double dblFlowId;//流程ID,FLOW_ID	
		public String strDisposalHint;//处理过程提示,DISPOSAL_HINT
   		public String strDisposalName;//处理过程名称,DISPOSAL_NAME  
		public Double dblTransactStatusId;//经办状态,TRANSACT_STATUS_ID   
		public int intGroupLimit;//组限制,GROUP_LIMIT  
		public Double dblCurStatusId;//当前环节ID,CUR_STATUS_ID
   		public Double dblPreStatusId;//上环节ID, PRE_STATUS_ID		
   		public int intCurX;//X坐标,CUR_X 
		public int intCurY;//Y坐标,CUR_Y
		public int x1,y1,x2,y2;//画线的两个处理对象的坐标
		public bool blDisplay=true;//是否显示,为false不显示
	
		public System.Windows.Forms.Label lbDispName;//lable标签,默认为为处理的名称
		private int intMouseDownX;
		private int intMouseDownY;//鼠标在lable上按下的坐标
		public int intlblw=50;//lable的宽度
		public int intlblh=25;//lbale的高度
		private System.Windows.Forms.ContextMenu menuDisp;
		private System.Windows.Forms.MenuItem menuDel;
		private System.Windows.Forms.MenuItem menuSet;//lable标签对应的操作菜单	
		public int intFormW;//画板的宽度,传递进来后防止lable出界
		public int intFormH;//画板的高度,传递进来后防止lable出界	
		public bool blCanMove=false;//lable是否可以移动		

		public System.Collections.ArrayList aryDisp=new ArrayList();//FlowMap的aryDisposal,用来在lable选择删除时,删除相应的Disposal对象
		public System.Collections.ArrayList aryStatusObjs=new ArrayList();///FlowMap的aryDisposal,用来设置处理的经办状态;
		public FlowStatus transactStatus;//经办状态对象;
		public FlowDisposal(FlowStatus objFrom, FlowStatus objTo)
		{										int x1=objFrom._x+Convert.ToInt32(objFrom._w/2);
            int y1=objFrom._y+Convert.ToInt32(objFrom._h/2);
			int x2=objTo._x+Convert.ToInt32(objTo._w/2);
			int y2=objTo._y+Convert.ToInt32(objTo._h/2);			this.x1=x1;			this.y1=y1;			this.x2=x2;			this.y2=y2;						int intCenterX=Convert.ToInt32((x1+x2)/2);			int intCenterY=Convert.ToInt32((y1+y2)/2);			this.intCurX=intCenterX;			this.intCurY=intCenterY;						this.dblPreStatusId=objFrom.dblStatusId;			this.dblCurStatusId=objTo.dblStatusId;			this.setLabelProp();		}		public FlowDisposal()//从xml生成空Disposal对象
		{								}
		public void setLabelProp()//设置label的属性
		{
			this.lbDispName=new System.Windows.Forms.Label();						this.lbDispName.Location = new System.Drawing.Point(this.intCurX-Convert.ToInt32(this.intlblw/2) , this.intCurY-Convert.ToInt32(this.intlblh/2) );			this.lbDispName.Size = new System.Drawing.Size(this.intlblw, this.intlblh);			this.lbDispName.Font=new System.Drawing.Font("宋体", 9F);							this.lbDispName.Text=strDisposalName;						this.lbDispName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;			this.lbDispName.MouseDown += new System.Windows.Forms.MouseEventHandler(lbl_MouseDown);
			this.lbDispName.MouseMove+=new System.Windows.Forms.MouseEventHandler(lbl_MouseMove);
			this.lbDispName.MouseUp+=new System.Windows.Forms.MouseEventHandler(lbl_MouseUp);
			//设置标签的右键菜单
			this.menuDisp=new System.Windows.Forms.ContextMenu();
			this.menuDel=new  System.Windows.Forms.MenuItem() ;
			this.menuSet=new  System.Windows.Forms.MenuItem();
			this.menuDel.Text="删除";
			this.menuDel.Click += new System.EventHandler(this.menuDel_Click);
			this.menuSet.Text="属性";
			this.menuSet.Click += new System.EventHandler(this.menuSet_Click);	
			this.menuDisp.MenuItems.Add(menuDel);
			this.menuDisp.MenuItems.Add("-");  
			this.menuDisp.MenuItems.Add(menuSet);				this.lbDispName.ContextMenu=this.menuDisp;	
		}

		public  void getFormwh(int intW,int intH)//得到FlowMap Form的高度和宽度
		{		this.intFormW=intW;		this.intFormH=intH; 				}

		private void lbl_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
		 this.intMouseDownX=this.intCurX-e.X;
		 this.intMouseDownY=this.intCurY-e.Y; 
		 this.blCanMove=true;
		
		}
		
		private void lbl_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if(this.blCanMove)
			{
				this.intCurX=this.intMouseDownX+e.X;
				this.intCurY=this.intMouseDownY+e.Y; 
				//this.lbDispName.Location=new Point(this.intCurX-Convert.ToInt32(this.intlblw/2) , this.intCurY-Convert.ToInt32(this.intlblh/2) );	
				// this.lbDispName.Refresh();
			}
			
		}

		private void lbl_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			this.intCurX=this.intMouseDownX+e.X;
			this.intCurY=this.intMouseDownY+e.Y; 
			this.lbDispName.Location=new Point(this.intCurX-Convert.ToInt32(this.intlblw/2) , this.intCurY-Convert.ToInt32(this.intlblh/2) );
			checkPosition(lbDispName,this.intFormW,this.intFormH); 
			this.intCurX=lbDispName.Left+Convert.ToInt32(this.intlblw/2);
			this.intCurY=lbDispName.Top+Convert.ToInt32(this.intlblh/2);
			this.blCanMove=false;			
		}

		//让lable始终在画板内,intFormW为画板的宽度,intFormH为画板的高度
		public  void checkPosition(System.Windows.Forms.Label  objLable,int intFormW,int intFormH)
		{
			
			int w =	intFormW;
			int h = intFormH;
			int new_x = objLable.Left;
			int new_y = objLable.Top;
			int lblW=objLable.Width;;
			int lblH=objLable.Height;
			

			if((objLable.Left+lblW)>w)
			{
				new_x = (int)w-lblW;
			}
			if(objLable.Left< 0)
			{
				new_x = 0;
			}
			if((objLable.Top+lblH)>h)
			{
				new_y = (int)h-lblH;
			}
			if(objLable.Top < 0)
			{
				new_y = 0;
			}
			objLable.Left=new_x;
			objLable.Top=new_y;
		}
		private void menuDel_Click(object sender, System.EventArgs e)//删除一个处理对象
		{
		/*	if(this.aryDisp.Count==0) return;
			
			foreach(Object item in this.aryDisp) 
			{
				FlowDisposal tempDisp=(FlowDisposal)item;
					if(tempDisp.Equals(this))
					{
					tempDisp.clearProperty(); 
					    return;
					}
				}
		*/
			   this.clearProperty();

		}

		private void menuSet_Click(object sender, System.EventArgs e)//设置处理对象的属性
		{
		  frmDispSet frmSet=new frmDispSet();		
		  frmSet.setThisDisposal(this);
		  frmSet.setAryStatus(this.aryStatusObjs); 
		  frmSet.setAryDisposal(this.aryDisp);
		  frmSet.MaximizeBox=false;
		  frmSet.MinimizeBox=false;					
		  frmSet.ShowDialog(); 			
		}

		/**
		 * 清除处理对象的所有属性
		 * 删除处理对象时,并不真正删除该对象,但是要清除其属性
		 * 	
		 * */		
		public void clearProperty() 
		{ 
		 this.blDisplay=false;//是否显示,为false不显示
	  	 this.lbDispName.Visible=false;
		 strDisposalHint="";//处理过程提示,DISPOSAL_HINT
   		 strDisposalName="";//处理过程名称,DISPOSAL_NAME  
		 dblTransactStatusId=0;//经办状态,TRANSACT_STATUS_ID   
		 intGroupLimit=0;//组限制,GROUP_LIMIT  
		 dblCurStatusId=-1;//当前环节ID,CUR_STATUS_ID
   		 dblPreStatusId=-1;//上环节ID, PRE_STATUS_ID		
   		 intCurX=-1;//X坐标,CUR_X 
		 intCurY=-1;//Y坐标,CUR_Y	
		 blCanMove=false;//lable是否可以移动
	     //aryDisp=null;
			  
		}
		
		
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -