/// <summary> /// </summary> private void miDownProcess_Click(object sender, EventArgs e) { //在下边增加一个新的进程 ProcessButton pb = new ProcessButton(); pb.Left = this.Left - (int)(4.5 * DrawUtility.a); pb.Top = this.Top + this.Height - 4; this.Parent.Controls.Add(pb); pb.InFlows.Add(this); this.ToProcesses.Add(pb); }
/// <summary> /// </summary> private void miProcess_Click(object sender, EventArgs e) { //如果已经有的不要增加了。 if (ToProcesses.Count > 0) { MessageBox.Show("目标进程已经存在"); } else { //在右边增加一个新的进程 ProcessButton pb = new ProcessButton(); pb.Left = this.Right; pb.Top = this.Top - 2 * DrawUtility.a; this.Parent.Controls.Add(pb); pb.InFlows.Add(this); this.ToProcesses.Add(pb); } }
public override FunctionButton AddOutProcess(string processName) { if (ToProcesses.Count > 0) { return(null); } else { //在右边增加一个新的进程 ProcessButton pb = new ProcessButton(); pb.ProcessName = processName; pb.Left = this.Right - this.Width / 2; pb.Top = this.Top - 2 * DrawUtility.a; this.Parent.Controls.Add(pb); pb.InFlows.Add(this); this.ToProcesses.Add(pb); return(pb); } }
/// <summary> /// </summary> private void miProcess_Click(object sender, EventArgs e) { //在下边增加一个新的进程 ProcessButton pb = new ProcessButton(); if (this.FromProcesses.Count > 0) { pb.Left = (FromProcesses[0] as ProcessButton).Left; pb.Top = this.Top + this.Height; } else { pb.Left = this.Left - (DrawUtility.rw + DrawUtility.ah - 4) * DrawUtility.a / 2; pb.Top = this.Top + this.Height; } this.Parent.Controls.Add(pb); pb.InFlows.Add(this); this.ToProcesses.Add(pb); }
/// <summary> /// </summary> private void miDefine_Click(object sender, EventArgs e) { try { Cursor = Cursors.Cross; SelectProcessForm spf = new SelectProcessForm(this.Parent); if (spf.ShowDialog() == DialogResult.OK) { ProcessButton pb = spf.SelectedButton; DefineArrowButton dab; if (pb.Left > this.Left) { Point startPoint = new Point(this.Left + this.Width, this.Top); Point endPoint = new Point(pb.Left, pb.Top + pb.Height); dab = new DefineArrowButton(startPoint, endPoint); //向右上方画 dab.Left = this.Left + this.Width; dab.Top = this.Top - (startPoint.Y - endPoint.Y); } else { Point startPoint = new Point(this.Left, this.Top); Point endPoint = new Point(pb.Left + pb.Width, pb.Top + pb.Height); dab = new DefineArrowButton(startPoint, endPoint); //向右上方画 dab.Left = endPoint.X; dab.Top = endPoint.Y; } this.Parent.Controls.Add(dab); OutFlows.Add(dab); dab.FromProcesses.Add(this); dab.ToProcesses.Add(pb); } //获取目标点 } finally { Cursor = Cursors.Default; } }
public override FunctionButton AddOutProcess(string processName) { //如果已经有的不要增加了。 if (ToProcesses.Count > 0) { MessageBox.Show("目标进程已经存在"); return(null); } else { //在右边增加一个新的进程,SystemColors.Control ProcessButton pb = new ProcessButton(SystemColors.Control, this.degree, this.ArrowHead); pb.ProcessName = processName; this.Parent.Controls.Add(pb); pb.DrawButton(); pb.InFlows.Add(this); this.ToProcesses.Add(pb); return(pb); } }
/// <summary> /// </summary> private void miJump_Click(object sender, EventArgs e) { //选择目标点 ProcessButton pbEnd = null; SelectProcessForm spf = new SelectProcessForm(this.Parent); if (spf.ShowDialog() == DialogResult.OK) { pbEnd = spf.SelectedButton; int length = 0; if (pbEnd.Left > this.Left) { length = Math.Abs(pbEnd.Left - this.Left - DrawUtility.a); } else { length = Math.Abs(this.Left - pbEnd.Left - DrawUtility.a); } bool isBack = pbEnd.Left < this.Left; JumpArrowButton jab = new JumpArrowButton(isBack, length); DrawUtility.DrawJumpArrow(jab, null, length, isBack); if (pbEnd.Left > this.Left) { jab.Left = this.Left + this.Width / 2 - DrawUtility.a; jab.Top = this.Top - 12 * DrawUtility.a; } else { jab.Left = pbEnd.Left + pbEnd.Width / 2 - DrawUtility.a; jab.Top = this.Top - 17 * DrawUtility.a; } this.Parent.Controls.Add(jab); OutFlows.Add(jab); jab.FromProcesses.Add(this); jab.ToProcesses.Add(pbEnd); } }