博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片放大功能
阅读量:4985 次
发布时间:2019-06-12

本文共 3061 字,大约阅读时间需要 10 分钟。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Windows.Forms;namespace WindowsFormsApplication1{    publicpartialclass Form1 : Form    {        Thread thDraw;        delegatevoid myDrawRectangel();        myDrawRectangel mydraw;        private Point ptBegin =new Point();        privatebool blIsDrawRectangle =true;        public Form1()        {            InitializeComponent();        }        privatevoid pictureBox1_Paint(object sender, PaintEventArgs e)        {            if (blIsDrawRectangle)            {                e.Graphics.DrawRectangle(new Pen(Brushes.Black, 1), ptBegin.X, ptBegin.Y, 50, 50);            }        }        privatevoid Form1_Load(object sender, EventArgs e)        {            //图片背景初始化this.pictureBox1.Image = System.Drawing.Image.FromFile(@"D:\Image\MianPic.bmp");            mydraw =new myDrawRectangel(ShowDrawRectangle);            thDraw =new Thread(Run);            thDraw.Start();        }        privatevoid Run()        {            while (true)            {                if (pictureBox1.Image !=null)                {                    this.BeginInvoke(mydraw);                }                Thread.Sleep(50);            }        }        privatevoid Form1_FormClosed(object sender, FormClosedEventArgs e)        {            if (thDraw !=null)            {                thDraw.Abort();            }        }        privatevoid ShowDrawRectangle()        {            Rectangle rec =new Rectangle(ptBegin.X * pictureBox1.Image.Size.Width /460, ptBegin.Y * pictureBox1.Image.Size.Height /350,                                           50* pictureBox1.Image.Size.Width /460, 50* pictureBox1.Image.Size.Height /350);            Graphics g = pictureBox2.CreateGraphics();            g.DrawImage(pictureBox1.Image, pictureBox2.ClientRectangle, rec, GraphicsUnit.Pixel);            g.Flush();        }        privatevoid pictureBox1_MouseLeave(object sender, EventArgs e)        {            blIsDrawRectangle =false;            pictureBox1.Refresh();        }        privatevoid pictureBox1_MouseEnter(object sender, EventArgs e)        {            blIsDrawRectangle =true;        }        privatevoid pictureBox1_MouseMove(object sender, MouseEventArgs e)        {            if (e.X -25<=0)            {                ptBegin.X =0;            }            elseif (pictureBox1.Size.Width - e.X <=25)            {                ptBegin.X = pictureBox1.Size.Width -50;            }            else            {                ptBegin.X = e.X -25;            }            if (e.Y -25<=0)            {                ptBegin.Y =0;            }            elseif (pictureBox1.Size.Height - e.Y <=25)            {                ptBegin.Y = pictureBox1.Size.Height -50;            }            else            {                ptBegin.Y = e.Y -25;            }            pictureBox1.Refresh();        }    }}

转载于:https://www.cnblogs.com/jhabb/archive/2011/12/15/2289059.html

你可能感兴趣的文章
LINUX samba的安装使用
查看>>
CSS border 生成三角
查看>>
asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
查看>>
7.STM32中GPIO理解
查看>>
base64 json
查看>>
在vim中搜索单词
查看>>
设置定点数学属性
查看>>
自动化测试工具 Test Studio入门教程
查看>>
Python之进程线程
查看>>
排序算法(一) —— 冒泡排序
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
窗外【1】
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
Android 四大组件之Service
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
xml.dom.minidom
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
7.14T3
查看>>