private void picfortype_Click(object sender, EventArgs e)
{
Image imge = ((PictureBox)sender).Image;
Image imge = ((PictureBox)sender).Image;
int newheight = imge.Height;
int newwidth = imge.Width; Pen myPen = new Pen(Brushes.Black, 2); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; Bitmap bmp = new Bitmap(newwidth, newheight);
Graphics g = Graphics.FromImage(bmp); Rectangle rec = new Rectangle(0, 0, newwidth, newheight); g.DrawImage(imge, rec, 0, 0, imge.Width, imge.Height, GraphicsUnit.Pixel);
g.DrawRectangle(myPen, 0, 0, newwidth, newheight); ((PictureBox)sender).Image = bmp; //pictureBox1.Image = bmp;
//textBox1.Text = ((PictureBox)sender).Tag.ToString();
}这个是picturebox的单击事件我的目的:我已经在tabcontrol的tabpage里面动态生成了几个picturebox控件,也加载好了图片。
现在我点击每个图片,需要在当前点击的图片加一个边框,代表选中的意思。
以上代码已经实现了增加边框,但是我点每个图片都加了边框
我是想只让我当前点击的有边框,当我点击下一个图片的时候,点击的目标有边框,前面的有边框的取消。意思就是不论多少个图片,当前只能有一个有边框
{
Image imge = ((PictureBox)sender).Image;
Image imge = ((PictureBox)sender).Image;
int newheight = imge.Height;
int newwidth = imge.Width; Pen myPen = new Pen(Brushes.Black, 2); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; Bitmap bmp = new Bitmap(newwidth, newheight);
Graphics g = Graphics.FromImage(bmp); Rectangle rec = new Rectangle(0, 0, newwidth, newheight); g.DrawImage(imge, rec, 0, 0, imge.Width, imge.Height, GraphicsUnit.Pixel);
g.DrawRectangle(myPen, 0, 0, newwidth, newheight); ((PictureBox)sender).Image = bmp; //pictureBox1.Image = bmp;
//textBox1.Text = ((PictureBox)sender).Tag.ToString();
}这个是picturebox的单击事件我的目的:我已经在tabcontrol的tabpage里面动态生成了几个picturebox控件,也加载好了图片。
现在我点击每个图片,需要在当前点击的图片加一个边框,代表选中的意思。
以上代码已经实现了增加边框,但是我点每个图片都加了边框
我是想只让我当前点击的有边框,当我点击下一个图片的时候,点击的目标有边框,前面的有边框的取消。意思就是不论多少个图片,当前只能有一个有边框
2.如果你在后台用cs写的话,每次点击都要注意一个选中的值,然后将未选择的值的控件?(???不确定是否是控件)都取消框效果
private Image imgPrev=null; //上一次图片控件的图片
private void picfortype_Click(object sender, EventArgs e)
{
Image imge = ((PictureBox)sender).Image;
Image imge = ((PictureBox)sender).Image;
int newheight = imge.Height;
int newwidth = imge.Width;
Pen myPen = new Pen(Brushes.Black, 2);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
Bitmap bmp = new Bitmap(newwidth, newheight);
Graphics g = Graphics.FromImage(bmp);
Rectangle rec = new Rectangle(0, 0, newwidth, newheight);
g.DrawImage(imge, rec, 0, 0, imge.Width, imge.Height, GraphicsUnit.Pixel);
g.DrawRectangle(myPen, 0, 0, newwidth, newheight);
((PictureBox)sender).Image = bmp;
//pictureBox1.Image = bmp;
//textBox1.Text = ((PictureBox)sender).Tag.ToString();
if(picPrev!=null)
{
picPrev.Image=imgPrev;
}
picPrev=((PictureBox)sender;
imgPrev=imge;
}
PictureBox 是 winform 控件
foreach(item in panel1.chiled)
{
if(item == sender)
sender.checked=true
else
item .checked=false}大概是这个意思 你自己转换下 改成你自己的代码