首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么设置图片的选择框,有代码,请指正

2013-03-17 
如何设置图片的选择框,有代码,请指正private void picfortype_Click(object sender, EventArgs e){Image i

如何设置图片的选择框,有代码,请指正
    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控件,也加载好了图片。
现在我点击每个图片,需要在当前点击的图片加一个边框,代表选中的意思。
以上代码已经实现了增加边框,但是我点每个图片都加了边框
我是想只让我当前点击的有边框,当我点击下一个图片的时候,点击的目标有边框,前面的有边框的取消。意思就是不论多少个图片,当前只能有一个有边框



[解决办法]
private PictureBox picPrev=null; //上一次加边框的图片控件
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;        
}
 

热点排行