📄 form1.cs
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace VCSharp
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.ComponentModel.IContainer components;
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem mnuDraw;
private System.Windows.Forms.MenuItem mnuLine;
private System.Windows.Forms.MenuItem mnuArc;
private System.Windows.Forms.MenuItem mnuText;
private ArrayList ges=new ArrayList();
private ArrayList geSels=new ArrayList();
private ICommand aCommand;
private CCreateLine creLine=new CCreateLine();
private CCreateRectangle creRect=new CCreateRectangle();
private CCreateCircle creCircle=new CCreateCircle();
private CCreateArc creArc=new CCreateArc();
private CCreateText creText=new CCreateText();
private System.Windows.Forms.MenuItem mnuRect;
private System.Windows.Forms.MenuItem mnuCircle;
private Module m=new Module();
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.mnuDraw = new System.Windows.Forms.MenuItem();
this.mnuLine = new System.Windows.Forms.MenuItem();
this.mnuRect = new System.Windows.Forms.MenuItem();
this.mnuCircle = new System.Windows.Forms.MenuItem();
this.mnuArc = new System.Windows.Forms.MenuItem();
this.mnuText = new System.Windows.Forms.MenuItem();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuDraw});
//
// mnuDraw
//
this.mnuDraw.Index = 0;
this.mnuDraw.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuLine,
this.mnuRect,
this.mnuCircle,
this.mnuArc,
this.mnuText});
this.mnuDraw.Text = "绘图";
//
// mnuLine
//
this.mnuLine.Index = 0;
this.mnuLine.Text = "直线段";
this.mnuLine.Click += new System.EventHandler(this.mnuLine_Click);
//
// mnuRect
//
this.mnuRect.Index = 1;
this.mnuRect.Text = "矩形";
this.mnuRect.Click += new System.EventHandler(this.mnuRect_Click);
//
// mnuCircle
//
this.mnuCircle.Index = 2;
this.mnuCircle.Text = "圆";
this.mnuCircle.Click += new System.EventHandler(this.mnuCircle_Click);
//
// mnuArc
//
this.mnuArc.Index = 3;
this.mnuArc.Text = "圆弧";
this.mnuArc.Click += new System.EventHandler(this.mnuArc_Click);
//
// mnuText
//
this.mnuText.Index = 4;
this.mnuText.Text = "文本";
this.mnuText.Click += new System.EventHandler(this.mnuText_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(768, 433);
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);
}
#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;
//相对于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;
}
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));
aCommand.MouseMove(g,aPos);
}
private void mnuRect_Click(object sender, System.EventArgs e)
{
aCommand=creRect;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -