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

📄 form1.cs

📁 苏金明编写的《用VB.NET和VC#.NET开发交互式CAD系统》一书的源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
			// btnSave
			// 
			this.btnSave.ImageIndex = 1;
			// 
			// toolBarButton16
			// 
			this.toolBarButton16.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
			// 
			// btnSelect
			// 
			this.btnSelect.ImageIndex = 2;
			// 
			// btnDelete
			// 
			this.btnDelete.ImageIndex = 3;
			// 
			// toolBarButton17
			// 
			this.toolBarButton17.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
			// 
			// btnLine
			// 
			this.btnLine.ImageIndex = 4;
			// 
			// btnRectangle
			// 
			this.btnRectangle.ImageIndex = 5;
			// 
			// btnCircle
			// 
			this.btnCircle.ImageIndex = 6;
			// 
			// btnArc
			// 
			this.btnArc.ImageIndex = 7;
			// 
			// btnText
			// 
			this.btnText.ImageIndex = 8;
			// 
			// toolBarButton1
			// 
			this.toolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
			// 
			// btnMove
			// 
			this.btnMove.ImageIndex = 9;
			// 
			// btnRotate
			// 
			this.btnRotate.ImageIndex = 10;
			// 
			// btnMirror
			// 
			this.btnMirror.ImageIndex = 11;
			// 
			// btnZoomIn
			// 
			this.btnZoomIn.ImageIndex = 12;
			// 
			// btnZoomOut
			// 
			this.btnZoomOut.ImageIndex = 13;
			// 
			// toolBarButton2
			// 
			this.toolBarButton2.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
			// 
			// btnHelp
			// 
			this.btnHelp.ImageIndex = 14;
			// 
			// statusBar1
			// 
			this.statusBar1.Location = new System.Drawing.Point(0, 411);
			this.statusBar1.Name = "statusBar1";
			this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
																						  this.statusBarPanel1});
			this.statusBar1.ShowPanels = true;
			this.statusBar1.Size = new System.Drawing.Size(768, 22);
			this.statusBar1.TabIndex = 1;
			// 
			// statusBarPanel1
			// 
			this.statusBarPanel1.Text = "就绪";
			this.statusBarPanel1.ToolTipText = "当前位置";
			this.statusBarPanel1.Width = 200;
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
			this.BackColor = System.Drawing.Color.White;
			this.ClientSize = new System.Drawing.Size(768, 433);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.statusBar1,
																		  this.toolBar1});
			this.Menu = this.mainMenu1;
			this.Name = "Form1";
			this.Text = "Net-CAD";
			this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
			this.Load += new System.EventHandler(this.Form1_Load);
			((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private void Form1_Load(object sender, System.EventArgs e)
		{
			Graphics g= this.CreateGraphics();
			g.FillRectangle(Brushes.White, this.ClientRectangle);
			g.PageUnit = GraphicsUnit.Pixel;

			Splash spForm=new Splash();
			spForm.ShowDialog(this);

			//相对于X轴进行镜像变换
			Matrix mat=new Matrix(1, 0, 0, -1, 0, 0);
			g.Transform = mat;
			Rectangle rect= this.ClientRectangle;
			float viewDX = rect.Width / 2;
			float viewDY = rect.Height / 2;
			float viewScale=1;

			m.Coordinate(g,ges,viewDX,viewDY,viewScale);

			aCommand=creLine;
		}

		protected override void OnPaint(PaintEventArgs e)
		{
			Graphics g=this.CreateGraphics();
			m.DrawAll(g,ges);
			m.DrawSel(g,geSels);
		}

		public void Coordinate(Graphics g)
		{
			//g.TranslateTransform(viewDX, viewDY, MatrixOrder.Append);
			//g.ScaleTransform(viewScale, viewScale, MatrixOrder.Append);
			g.Clear(Color.White);
			//drawall(g);
		}

		private void mnuLine_Click(object sender, System.EventArgs e)
		{
		    aCommand=creLine;
		}

		private void mnuCircle_Click(object sender, System.EventArgs e)
		{
			aCommand=creCircle;
		}

		private void mnuArc_Click(object sender, System.EventArgs e)
		{
			aCommand=creArc;
		}

		private void mnuText_Click(object sender, System.EventArgs e)
		{
			aCommand=creText;
		}

		private void mnuMove_Click(object sender, System.EventArgs e)
		{
			aCommand=trMove;
		}

		private void mnuRotate_Click(object sender, System.EventArgs e)
		{
			aCommand=trRotate;
		}

		private void mnuMirror_Click(object sender, System.EventArgs e)
		{
			aCommand=trMirror;
		}

		protected override void OnMouseDown(MouseEventArgs e)
		{
			Graphics g=this.CreateGraphics();

			PointF aPos=m.PagetoWorld(new PointF(e.X, e.Y));
			if (e.Button==MouseButtons.Left)
			{
				aCommand.LButtonDown(g,aPos,ges,geSels);
			}
			else if(e.Button==MouseButtons.Right)
			{
				aCommand.RButtonDown(g,aPos);
			}
		}

		protected override void OnMouseMove(MouseEventArgs e)
		{
			Graphics g=this.CreateGraphics();
			PointF aPos=m.PagetoWorld(new PointF(e.X, e.Y));
			statusBar1.Panels[0].Text = "X=" + aPos.X + ",  Y=" + aPos.Y;
			aCommand.MouseMove(g,aPos);
		}

		private void mnuDelete_Click(object sender, System.EventArgs e)
		{
			Graphics g = this.CreateGraphics();
			for (int i = 0;i<=geSels.Count - 1;i++)
			{
				((CGElement)(geSels[i])).Draw(g, DrawMode.Delete);
				ges.Remove(geSels[i]);
			}
			geSels.RemoveRange(0, geSels.Count);
		}

		private void mnuSelect_Click(object sender, System.EventArgs e)
		{
		    aCommand=sel;
		}

		private void mnuSelAll_Click(object sender, System.EventArgs e)
		{
			Graphics  g= this.CreateGraphics();
			for (int i = 0;i<ges.Count;i++)
			{
				geSels.Add(ges[i]);
			}
			m.DrawSel(g,geSels);
		}

		private void mnuDesel_Click(object sender, System.EventArgs e)
		{
			Graphics  g= this.CreateGraphics();
			for (int i = 0;i<geSels.Count;i++)
			{
				((CGElement)(geSels[i])).Draw(g, DrawMode.Normal );
			}
			geSels.RemoveRange(0, geSels.Count);
		}

		private void mnuRect_Click(object sender, System.EventArgs e)
		{
			aCommand=creRect;
		}

		private void mnuSave_Click(object sender, System.EventArgs e)
		{
			SaveFileDialog dlg=new SaveFileDialog();
			dlg.Filter="CAD文件 (*.CAD)|*.CAD|所有文件 (*.*)|*.*";
			dlg.ShowDialog(this);
			string FileName=dlg.FileName;
			FileStream stream=new FileStream(FileName, FileMode.Create);
			BinaryFormatter binary=new BinaryFormatter();
			binary.Serialize(stream, ges);
			stream.Close();
		}

		private void mnuOpen_Click(object sender, System.EventArgs e)
		{
			Graphics g = this.CreateGraphics();
			OpenFileDialog dlg=new OpenFileDialog();
			dlg.Filter="CAD文件 (*.CAD)|*.CAD|所有文件 (*.*)|*.*";
			dlg.ShowDialog(this);
			string FileName=dlg.FileName;
			FileStream stream=new FileStream(FileName, FileMode.Open);
			BinaryFormatter binary =new BinaryFormatter();
			ges = (ArrayList)(binary.Deserialize(stream));
			stream.Close();
			m.DrawAll(g,ges);
		}

		private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			if (e.Button==btnOpen)
			{
				mnuOpen_Click(sender, e);
			}
			else if (e.Button==btnSave)
			{
				mnuSave_Click(sender, e);
			}
			else if (e.Button==btnSelect )
			{
				mnuSelect_Click(sender, e);
			}
			else if (e.Button==btnDelete )
			{
				mnuDelete_Click(sender, e);
			}
			else if (e.Button==btnLine )
			{
				mnuLine_Click(sender, e);
			}
			else if (e.Button==btnRectangle )
			{
				mnuRect_Click(sender, e);
			}
			else if (e.Button ==btnCircle )
			{
				mnuCircle_Click(sender, e);
			}
			else if (e.Button==btnArc )
			{
				mnuArc_Click(sender, e);
			}
			else if (e.Button==btnText )
			{
				mnuText_Click(sender, e);
			}
			else if (e.Button==btnMove )
			{
				mnuMove_Click(sender, e);
			}
			else if (e.Button==btnRotate )
			{
				mnuRotate_Click(sender, e);
			}
			else if (e.Button==btnMirror )
			{
				mnuMirror_Click(sender, e);
			}
			else if (e.Button==btnZoomIn )
			{
				mnuZoomIn_Click(sender, e);
			}
			else if (e.Button==btnZoomOut )
			{
				mnuZoomOut_Click(sender, e);
			}
			else if (e.Button==btnHelp )
			{
				mnuAbout_Click(sender, e);
			}
		}

		private void mnuZoomIn_Click(object sender, System.EventArgs e)
		{
			Graphics g = this.CreateGraphics();
			m.ScaleZoom(g, 1.2f, 1.2f,geSels);
		}

		private void mnuZoomOut_Click(object sender, System.EventArgs e)
		{
			Graphics g = this.CreateGraphics();
			m.ScaleZoom(g, 0.8f, 0.8f,geSels);		
		}

		private void mnuAbout_Click(object sender, System.EventArgs e)
		{
			About about=new About();
			about.ShowDialog(this);
		}


	}
}

⌨️ 快捷键说明

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