`
陈雨璇
  • 浏览: 18046 次
  • 性别: Icon_minigender_2
  • 来自: 衡阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

初涉C Sharp

阅读更多
C Sharp or C#,微软公司的某一产品。准确的说其实还是一种编程语言。它与C、C++、Java这三种语言有相似之处。而跟Java相比较,在某些方法可以说是一模一样。今天简单了解了一下Csharp,写了一个画图板程序。可以画直线,椭圆,矩形,还可以选择颜色,重绘也实现了。

一些核心代码:
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貌似不行,这个还有待研究。
分享到:
评论
2 楼 陈雨璇 2012-03-10  
谢谢夸奖。
1 楼 JuliaAilse 2012-03-02  
    

相关推荐

    打印机驱动 夏普Sharp AR-2348SV 驱动

    打印机驱动 夏普Sharp AR-2348SV 驱动打印机驱动 夏普Sharp AR-2348SV 驱动打印机驱动 夏普Sharp AR-2348SV 驱动打印机驱动 夏普Sharp AR-2348SV 驱动打印机驱动 夏普Sharp AR-2348SV 驱动打印机驱动 夏普Sharp AR-...

    夏普Sharp MX-C2651R 驱动下载安装.exe

    夏普Sharp MX-C2651R 驱动下载安装 使用中有任何问题可以关注并私信,如果资源对您有帮助记得关注收藏好评哟!

    C Sharp语言参考.

    C Sharp语言参考.C Sharp语言参考.

    夏普SHARP MX-3118NC 驱动.rar

    《夏普SHARP MX-3118NC 驱动详解及安装指南》 夏普SHARP MX-3118NC是一款高效能的多功能打印机,专为满足办公环境中多样的打印、复印和扫描需求而设计。这款设备的驱动程序是确保其正常运行的关键组成部分,它能够...

    SHARP夏普MX-2658NV打印机驱动For Mac

    SHARP夏普MX-2658NV打印机驱动For Mac

    c sharp 常用范例宝典12

    C#,全称为C Sharp,是由微软公司开发的一种面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发、Web服务以及移动应用等多个领域。作为.NET框架的重要组成部分,C#拥有丰富的特性和强大的功能,深受开发者...

    Sharp夏普ar 2348s扫描驱动 官网版

    夏普ar2348s驱动是由夏普官方专门为Sharpar2348s型号打印机设计的驱动程序,这款打印机驱动程序主要解决该打印机无法正常工作或者无法连接电脑等问题,有需要的朋友欢迎下载使用。夏普2348S打印机详细参数介绍基本...

    sharp.rar_C sharp_Sharp

    【标题】"sharp.rar_C sharp_Sharp" 指的是一个与C#(C Sharp)编程语言相关的资源压缩包,其中包含的项目可能是关于“sharp锋利网络学院”的一款应用程序,可能是一个记事本程序的源代码。"sharp"在这里可能是项目...

    C Sharp串口通信程序.pdf

    C Sharp串口通信程序

    小软件C_sharp_study

    "小软件C_sharp_study"这个项目,正是为了深入学习和实践C#编程,通过开发小软件来巩固理论知识,提升实际操作能力。 C#,全称C Sharp,是.NET框架的核心语言,它吸收了C++和Java的优点,支持类、接口、继承等面向...

    C SHARP详细教程

    C#(发音为 "C Sharp")是一种面向对象的编程语言,由微软公司于2000年推出,主要用于开发Windows平台的应用程序。C#在设计时就考虑了Web服务和分布式应用程序的需求,它结合了C++的强大功能和Java的简洁性。本教程...

    C Sharp3.0

    07318 C Sharp 3.0从基础到项目实战源代码、PPT

    myself C sharp - ZY

    myself C sharp myself C sharp myself C sharp myself C sharp myself C sharp

    c sharp 各种常用范例10

    在这个压缩包中,我们看到的是"C sharp 各种常用范例10",这意味着包含了一些基本到高级的C#编程示例,帮助学习者更好地理解和掌握C#的用法。 首先,C#中的基本语法包括变量声明、数据类型(如int、string、bool等...

    夏普SHARP AR-4818S 打印机驱动

    SHARPAR-4818S是一款高档的数码复合打印机...如果夏普ar4818s不能使用,需要先安装夏普ar4818s驱动,小编提供的驱动支持xp、win7等操作系统。安装完成后,夏普ar4818s就可以正常工作了。安装方法1、下载解,欢迎下载体验

    c sharp的process使用

    c sharp的process使用,win7+vs2013测试通过,亲测好用

    夏普 Sharp vl-pd3s、vl-pd3h、vl-pd3e摄像机维修服务说明书原理图PCB图

    夏普 Sharp vl-pd3s、vl-pd3h、vl-pd3e摄像机是夏普公司生产的一系列数字摄像机,支持PAL标准制式的视频录制,这三款摄像机拥有相似的技术规格和维修指南。 【VL-PD3S/H/E摄像机的规格】 - 信号系统:PAL标准 - ...

    夏普C2221R、2421R、2821R、3121R完整原版驱动.rar

    夏普C2221R、2421R、2821R以及3121R系列打印机是夏普公司推出的多功能一体机产品,主要用于办公环境,集打印、扫描、复印和传真功能于一体。这些设备的稳定运行离不开与之匹配的驱动程序,驱动程序是连接硬件设备和...

    windows应用高级编程-C Sharp 编程篇.pdf

    windows应用高级编程-C Sharp 编程篇.pdf

    Sharp夏普AR-4821D复印机驱动

    夏普ar4821d驱动是一款针对该复印机型号打造的驱动工具,能有效解决修复打印机中出现的各种...Sharp夏普AR-4821D复印机介绍Sharp夏普AR-4821D复印机性能强劲,功能丰富,标配双面打印双面复印身份证复印,欢迎下载体验

Global site tag (gtag.js) - Google Analytics