`
不存在
  • 浏览: 4933 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

C#编程语言--Timer 和 画布Graphics -2

 
阅读更多

Timer 和 画布Graphics

 

几个重点:

Timer控件的使用

Graphics 的各种Draw方法

Brush,Pen

Paint事件

双缓冲

 

控件timer:计时器

           属性:enabled     true/false    是否可用,即在加载的时候是否启用事件

                      interval      1000           1000毫秒就是1秒

           timer控件有一个事件:Tick      表示的是当一个时间到来的时候做的事

窗体加载时鼠标的三个事件:

           mousedown    鼠标点击时事件

           mousemove    鼠标移动时事件

           mouseup         鼠标弹起事件

string url=@  "图片路径";   有两种方法解决转义符的问题,在路径用\\或者在最前面加@  

  1、比如双\\   "C:\\Users\\越\\Desktop\\2"

  2、在前面加string url=@“C:\Users\越\Desktop\2”;

图片的路径可以用string 类型的变量来赋值;

在窗体里面插入一张图片:

this.backgroundImage=image.fromfire(url);

paint  窗体的事件,加载时画窗体
refresh();强制整个窗体重绘,这是一个方法,直接调用就好了
graphics g=this.creatgraphics();// 这步是在得到基于该窗体的图形(画布)对象
pen p=new penpal(color.Red);      //得到一支红色的画笔,颜色可以自定义也就是Red可以是Black等等
g.Drawling(p,x,y,e.x,e.y);    //这是在画一个矩形

g.DrawEllipse(p, x, y, width, height);    //这是在画一个椭圆

g.DrawRectangle(p,x,y,width,height);   //这是在画一个矩形

 g.DrawLine(p,x,y,e.X,e.Y);                   //这是在画一条直线

双缓冲:this.Doublebuffered=true;

1、在应用程序中使用双缓冲的最简便的方法是使用 .NET Framework 为窗体和控件提供的默认双缓冲。通过将 DoubleBuffered 属性设置为 true。           //还不能完全理解是什么意思,只知道他能让几张图片交互时更流畅  ,比如即将做项目  "Flappy  bird"小鸟要飞;   

在窗体上 --   画圆、直线、椭圆、随意涂鸦

1、画圆、椭圆

        int x, y;

        bool IsDownMouse = false;

        private void Form6_MouseDown(object sender, MouseEventArgs e)   //鼠标点击时

        {

            x = e.X;

            y = e.Y;

            IsDownMouse = true;

        }

 

        private void Form6_MouseMove(object sender, MouseEventArgs e)   //鼠标移动时

        {

            //清空

            if (IsDownMouse==true)

            {

                Refresh();

                int width = e.X - x; //记录当前位置

                int height = e.Y - y;

                Graphics g = this.CreateGraphics();

                Pen p = new Pen(Color.Black);

                g.DrawEllipse(p, x, y, width, height);

            }

 

        }

 

        private void Form6_MouseUp(object sender, MouseEventArgs e)    //鼠标按键弹起时

        {

            IsDownMouse = false;

        }

2、画矩形

      int x, y;

        bool IsMouseDowns=false;

        private void Form7_MouseDown(object sender, MouseEventArgs e)   //鼠标点击时

        {

            x = e.X;

            y = e.Y;

            IsMouseDowns = true;

        }

 

        private void Form7_MouseMove(object sender, MouseEventArgs e)   //鼠标移动时

        {

            if (IsMouseDowns==true)

            {

                Refresh();

                int width = e.X - x; //记录当前位置

                int height = e.Y - y;

                Graphics g = this.CreateGraphics();

                Pen p = new Pen(Color.Black);

                g.DrawRectangle(p,x,y,width,height);

            }

 

        }

 

        private void Form7_MouseUp(object sender, MouseEventArgs e)   //鼠标按键弹起时

        {

            IsMouseDowns = false;

        }

3、直线

        int x, y;

        bool IsMouseDown = false;

        private void Form8_MouseDown(object sender, MouseEventArgs e)    //鼠标点击时

        {

            x = e.X;

            y = e.Y;

            IsMouseDown = true;

        }

 

        private void Form8_MouseMove(object sender, MouseEventArgs e)    //鼠标移动时

        {

            if (IsMouseDown==true)

            {

                Refresh();

                Graphics g = this.CreateGraphics();

                Pen p = new Pen(Color.Black);

                g.DrawLine(p,x,y,e.X,e.Y);  

            }

 

        }

 

        private void Form8_MouseUp(object sender, MouseEventArgs e)     //鼠标按键弹起时

        {

            IsMouseDown = false;

        }

4、随意涂鸦

        int x, y;

        bool isMouseDown=false;

        //鼠标点击时

        private void Form5_MouseDown(object sender, MouseEventArgs e)

        {

            x = e.X;

            y = e.Y;

            isMouseDown = true;

        }

        //鼠标移动时

        private void Form5_MouseMove(object sender, MouseEventArgs e)

        {

            if (isMouseDown==true)

            {

                Graphics g = this.CreateGraphics();

                Pen p = new Pen(Color.Black);

                g.DrawLine(p, x, y, e.X, e.Y);

                x = e.X;

                y = e.Y;

            }

        }

       //鼠标按键弹起时

        private void Form5_MouseUp(object sender, MouseEventArgs e)

        {

            isMouseDown = false;

        }

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics