在两个PictureBox上划画,不被遮挡 在一个Form里new了两个PictureBox,以这两个PictureBox的中心为两点,画一条直线,直线不能被PictureBox遮挡,这个要怎么做, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PictureBox加载图片,再找到两个PictureBox的中心用Graphics的pen画条线吧? //思路,采用Graphics对象的draw方法。Graphic对象的句柄设置成PictureBox1和PictureBox2所属的窗体,这样就能覆盖两个pictureBox private void button1_Click(object sender, EventArgs e) { //声明Graphics对象类 Graphics g = Graphics.FromHwnd(this.Handle); //声明pen类,设置画笔的颜色 Pen pen = new Pen(Color.Green); //设置画线的起点和终点。 Point p1 = new Point(this.pictureBox1.Location.X + this.pictureBox1.Size.Width / 2, this.pictureBox1.Location.Y + this.pictureBox1.Size.Height/ 2); Point p2 = new Point(this.pictureBox2.Location.X + this.pictureBox2.Size.Width / 2, this.pictureBox2.Location.Y + this.pictureBox2.Size.Height / 2); //画线 g.DrawLine(pen, p1, p2); } 画不出来的, pictureBox会盖住一切东西。 //(1)代码使用前提,在主窗体上添加两个picturebox,分别命名为picturebox1,picturebox2 //在主窗体上添加一个按钮,名为button1 //(2)思路,PictureBox对象总是能覆盖Graphics对象,所以需要用Picture对象来充当“直线”。 //使用picturebox.BringToFront()方法来将“直线”覆盖其他两个PictureBox private void button1_Click(object sender, EventArgs e) { //充当直线的PictureBox PictureBox p = new PictureBox(); //设置“直线”的起点是pictureBox1的中点 p.Location = new System.Drawing.Point(pictureBox1.Location.X + pictureBox1.Size.Width / 2, pictureBox1.Location.Y + pictureBox1.Size.Height / 2); //设置“直线”的长度是从pictureBox2中点到pictureBox1的中点的距离。 //设置"直线"的宽度是5 p.Size = new System.Drawing.Size(pictureBox2.Location.X + pictureBox2.Size.Width / 2 - pictureBox1.Location.X - pictureBox1.Size.Width / 2, 5); //设置“直线”的颜色是 红色 p.BackColor = Color.Red; //将“直线”添加到窗体上 this.Controls.Add(p); //将“直线”移动到窗体最上方,覆盖掉另外两个pictureBox p.BringToFront(); }//(3)效果如下所示http://hi.csdn.net/attachment/201101/2/7085318_12939803589ZI0.jpg 如果下载整个文件夹,并更换原来的文件 请问如何实现定时查看硬盘内文件,然后定期以附件的形式发送到指定的邮箱中. WebBrowser 的DocumentCompleted委托事件执行不了? 未将对象引用设置到对象的实例的问题? 菜鸟:请教大家帮忙,想要个一定时器的代码! 制作自定义报表 有一个问题 急急急!!! 如何把xmldocument的内容转换成string 关于批处理的问题 winform 发布到客户机DLL找不到的问题 .net实现Word对象池 怎么移除控件(button)上的图片?
private void button1_Click(object sender, EventArgs e)
{
//声明Graphics对象类
Graphics g = Graphics.FromHwnd(this.Handle);
//声明pen类,设置画笔的颜色
Pen pen = new Pen(Color.Green);
//设置画线的起点和终点。
Point p1 = new Point(this.pictureBox1.Location.X + this.pictureBox1.Size.Width / 2, this.pictureBox1.Location.Y + this.pictureBox1.Size.Height/ 2);
Point p2 = new Point(this.pictureBox2.Location.X + this.pictureBox2.Size.Width / 2, this.pictureBox2.Location.Y + this.pictureBox2.Size.Height / 2);
//画线
g.DrawLine(pen, p1, p2);
}
//在主窗体上添加一个按钮,名为button1
//(2)思路,PictureBox对象总是能覆盖Graphics对象,所以需要用Picture对象来充当“直线”。
//使用picturebox.BringToFront()方法来将“直线”覆盖其他两个PictureBox
private void button1_Click(object sender, EventArgs e)
{
//充当直线的PictureBox
PictureBox p = new PictureBox();
//设置“直线”的起点是pictureBox1的中点
p.Location = new System.Drawing.Point(pictureBox1.Location.X + pictureBox1.Size.Width / 2, pictureBox1.Location.Y + pictureBox1.Size.Height / 2);
//设置“直线”的长度是从pictureBox2中点到pictureBox1的中点的距离。
//设置"直线"的宽度是5
p.Size = new System.Drawing.Size(pictureBox2.Location.X + pictureBox2.Size.Width / 2 - pictureBox1.Location.X - pictureBox1.Size.Width / 2, 5);
//设置“直线”的颜色是 红色
p.BackColor = Color.Red;
//将“直线”添加到窗体上
this.Controls.Add(p); //将“直线”移动到窗体最上方,覆盖掉另外两个pictureBox
p.BringToFront();
}//(3)效果如下所示
http://hi.csdn.net/attachment/201101/2/7085318_12939803589ZI0.jpg