思科和华为交换机常用命令之对比学习
2012-01-10 12:00
381 查看
C Sharp or C#,微软公司的某一产品。准确的说其实还是一种编程语言。它与C、C++、Java这三种语言有相似之处。而跟Java相比较,在某些方法可以说是一模一样。今天简单了解了一下Csharp,写了一个画图板程序。可以画直线,椭圆,矩形,还可以选择颜色,重绘也实现了。
一些核心代码:
1、获取画布对象
2、颜色
C Sharp 中有表示颜色的Color类,但改变颜色的话需要用到Pen类。
定义一个按钮来实现颜色选择
添加按钮事件监听器的代码为;
3、鼠标监听器的添加方法
再具体实现监听器的方法。
4、最后就是重绘的方法
C sharp中有相应的重绘方法,为OnPaint (PaintEventArgs e)
重写方法时,方法前要添加override。
另外,C Sharp中的队列,List可以使用泛型,但ArrayList貌似不行,这个还有待研究。
一些核心代码:
1、获取画布对象
// 获取画板的画布对象¨ private System.Drawing.Graphics g ; g = this.panel1.CreateGraphics();
2、颜色
C Sharp 中有表示颜色的Color类,但改变颜色的话需要用到Pen类。
定义一个按钮来实现颜色选择
private static Color color = Color.Black; private System.Drawing.Pen p = new System.Drawing.Pen(color); //按下按钮时触发的事件 public void button4_Click(object sender, EventArgs e) { System.Windows.Forms.ColorDialog cd = new ColorDialog(); cd.ShowDialog(); color = cd.Color; p = new Pen(color); }
添加按钮事件监听器的代码为;
//改变画图板的颜色 this.button4.Click += new EventHandler(button4_Click);
3、鼠标监听器的添加方法
//鼠标的各种监听,此处添加到面板上。 this.panel1.MouseDown += new MouseEventHandler(Form1_MouseDown); this.panel1.MouseUp += new MouseEventHandler(Form1_MouseUp);
再具体实现监听器的方法。
//鼠标松开 public void Form1_MouseUp(object sender, MouseEventArgs e) { x2 = e.X; y2 = e.Y; Shape shape = new Shape(); if (s.Equals("Line")) { g.DrawLine(p, x1, y1, x2, y2); shape.x1 = x1; shape.y1 = y1; shape.x2 = x2; shape.y2 = y2; shape.item = "Line"; shape.c = this.p.Color; this.list.Add(shape); } else if (s.Equals("Oval")) { g.DrawEllipse(p, x1, y1, Math.Abs(x2-x1), Math.Abs(y2-y1)); shape.x1 = x1; shape.y1 = y1; shape.x2 = x2; shape.y2 = y2; shape.item = "Oval"; shape.c = this.p.Color; this.list.Add(shape); } else if (s.Equals("Rectangle")) { g.DrawRectangle(p, x1, y1, Math.Abs(x2 - x1), Math.Abs(y2 - y1)); shape.x1 = x1; shape.y1 = y1; shape.x2 = x2; shape.y2 = y2; shape.item = "Rectangle"; shape.c = this.p.Color; this.list.Add(shape); } } //鼠标按下 public void Form1_MouseDown(object sender, MouseEventArgs e) { x1 = e.X; y1 = e.Y; } class Shape { public int x1, x2, y1, y2; public String item; public Color c; }
4、最后就是重绘的方法
C sharp中有相应的重绘方法,为OnPaint (PaintEventArgs e)
重写方法时,方法前要添加override。
//重绘一下 protected override void OnPaint(PaintEventArgs e) { for (int i = 0; i < this.list.Count;i++ ) { Shape shape = this.list[i]; if(shape.item.Equals("Line")) { Pen pen = new Pen(shape.c); g.DrawLine(pen,shape.x1,shape.y1,shape.x2,shape.y2); } else if (shape.item.Equals("Oval")) { Pen pen = new Pen(shape.c); g.DrawEllipse(pen, shape.x1, shape.y1, Math.Abs(shape.x2 - shape.x1), Math.Abs(shape.y2 - shape.y1)); } else if (shape.item.Equals("Rectangle")) { Pen pen = new Pen(shape.c); g.DrawRectangle(pen, shape.x1, shape.y1, Math.Abs(shape.x2 - shape.x1), Math.Abs(shape.y2 - shape.y1)); } } }
另外,C Sharp中的队列,List可以使用泛型,但ArrayList貌似不行,这个还有待研究。
相关文章推荐
- 思科和华为交换机常用命令之对比学习
- 思科和华为交换机常用命令对比学习
- 思科和华为交换机常用命令之对比学习
- 思科和华为交换机常用命令对比学习
- 思科和华为交换机常用命令对比
- 思科和华为交换机常用命令之对比
- 思科、华为、H3C常用命令对比
- Linux学习45_对比_windows常用命令
- 思科、华为、H3C常用命令对比大全
- 思科、华为常用命令对比(转)
- rpm常用命令,需要对比学习yum命令
- Linux学习笔记:常用命令总结
- 思科交换机常用命令
- MYSQL使用简述-连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令
- DOCKER学习之(一) 镜像部分常用命令
- 五个知识体系之-Linux常用命令学习
- vuex - 常用命令学习及用法整理
- mysql常用命令学习
- DOS 和 Linux 常用命令的对比
- Linux部分常用命令学习(二)