private void pic_Paint(object sender, PaintEventArgs e)
{
PictureBox p = (PictureBox)sender;
float[] dashValues = { 2, 3 };
Pen pen = new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153))))));
pen.DashPattern = dashValues;
e.Graphics.DrawRectangle(pen, e.ClipRectangle.X, e.ClipRectangle.Y,
e.ClipRectangle.X + e.ClipRectangle.Width - 1,
e.ClipRectangle.Y + e.ClipRectangle.Height - 1);
}
这个是picturebox画上虚线边框的代码。但是做完后发现移动窗体会导致这样的虚线没有清除的问题
想了很多办法,都不能达到我想要的效果。
最后在网上找到一篇帖子
发现 Refresh();这方法。(做java的,不太熟这个控件的内置方法)
最后在可能触发重绘事件的地方全部加上这个方法。(一定是要加在重绘事件完成之后)