c#PictureBox的基本使用(画直线,矩形)
2008-12-22 18:31
387 查看
下面的四个事件一定要绑定,不绑定任何效果都没有的
private Point m_ptStart = new Point(0, 0);
private Point m_ptEnd = new Point(0, 0);
// true: MouseUp or false: MouseMove
private bool m_bMouseDown = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
if (!m_bMouseDown)
{
m_ptStart = new Point(e.X, e.Y);
m_ptEnd = new Point(e.X, e.Y);
}
m_bMouseDown = !m_bMouseDown;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
if (m_ptStart.X >= 0 && m_ptEnd.X >= 0
&& m_ptStart.Y >= 0 && m_ptEnd.Y >= 0
&& m_ptStart.X <= 254 && m_ptEnd.X <= 254
&& m_ptStart.Y <= 163 && m_ptEnd.Y <= 163)
{
m_ptEnd = new Point(e.X, e.Y);
m_bMouseDown = !m_bMouseDown;
this.pictureBox1.Refresh();
}
else
{
m_ptEnd = m_ptStart;
m_bMouseDown = !m_bMouseDown;
this.pictureBox1.Refresh();
}
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (m_ptStart.Equals(m_ptEnd)) return;
e.Graphics.DrawLine(System.Drawing.Pens.Red, m_ptStart, m_ptEnd);
//画矩形加上以下六行
//if (m_ptEnd.X - m_ptStart.X < 0 || m_ptEnd.Y - m_ptStart.Y < 0)
// {
// return;
//}
//e.Graphics.DrawRectangle(System.Drawing.Pens.Blue, m_ptStart.X, m_ptStart.Y, m_ptEnd.X - m_ptStart.X, m_ptEnd.Y - m_ptStart.Y);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
m_ptEnd = new Point(e.X, e.Y);
this.pictureBox1.Refresh();
}
private Point m_ptStart = new Point(0, 0);
private Point m_ptEnd = new Point(0, 0);
// true: MouseUp or false: MouseMove
private bool m_bMouseDown = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
if (!m_bMouseDown)
{
m_ptStart = new Point(e.X, e.Y);
m_ptEnd = new Point(e.X, e.Y);
}
m_bMouseDown = !m_bMouseDown;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
if (m_ptStart.X >= 0 && m_ptEnd.X >= 0
&& m_ptStart.Y >= 0 && m_ptEnd.Y >= 0
&& m_ptStart.X <= 254 && m_ptEnd.X <= 254
&& m_ptStart.Y <= 163 && m_ptEnd.Y <= 163)
{
m_ptEnd = new Point(e.X, e.Y);
m_bMouseDown = !m_bMouseDown;
this.pictureBox1.Refresh();
}
else
{
m_ptEnd = m_ptStart;
m_bMouseDown = !m_bMouseDown;
this.pictureBox1.Refresh();
}
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (m_ptStart.Equals(m_ptEnd)) return;
e.Graphics.DrawLine(System.Drawing.Pens.Red, m_ptStart, m_ptEnd);
//画矩形加上以下六行
//if (m_ptEnd.X - m_ptStart.X < 0 || m_ptEnd.Y - m_ptStart.Y < 0)
// {
// return;
//}
//e.Graphics.DrawRectangle(System.Drawing.Pens.Blue, m_ptStart.X, m_ptStart.Y, m_ptEnd.X - m_ptStart.X, m_ptEnd.Y - m_ptStart.Y);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
m_ptEnd = new Point(e.X, e.Y);
this.pictureBox1.Refresh();
}
相关文章推荐
- C#pictureBox公共控件的使用
- 浅谈C#使用xml基本方法
- C#PictureBox 控件
- C# ComboBox基本使用
- c# picturebox随图片改变大小
- C#中缓存的基本使用方法
- C#委托类型-(基本使用方法)
- C#中Linq查询基本操作使用实例
- C#Asp.Net中mongo数据库的基本使用
- c# picturebox图片上画框框或圈圈
- serialPort基本属性与使用(串口)——C#
- Canvas入门(1):绘制矩形、圆、直线、曲线等基本图形
- C#学习基本概念之构造函数之一(使用构造函数)
- C#|GMap.NET控件基本使用-高德地图
- HTML5利用Canvas绘制图形(Canvas基本知识、绘制矩形、使用路径和图形组合)
- C# PictureBox 显示单通道灰度图
- C#picturebox或者Dev控件 PictureEdit 按比例的缩放加载图片
- Transparent PictureBox in C#
- C# winform PictureBox插入图片并设置自适应显示
- MongoDB的C#驱动基本使用