我有很多图像和坐标,宽度和高度.将图片放入图片框中,然后发送坐标以在其上绘制矩形.面板上有许多图片框.
我将它们的路径发送到一个PicturePanel类,也有一些坐标和宽度/高度属性来绘制一个矩形.但是,我的问题是,它绘制它,并立即删除它.如果我没有在每个图像后面放一个消息框,我看不到矩形.这是代码;
if (IsRun())
{
MessageBox.Show("rontool true");
Rectangle ee = drawARectangle(xCoor, yCoor, MainScreen.tempR.wid / ratioOfx, MainScreen.tempR.heig / ratioOfy); // I wrote this, it only creates and returns the rectangle.
//MessageBox.Show("x : " + xCoor + " y: " + yCoor + " width : " + (MainScreen.tempR.wid / ratioOfx) + " height: " + (MainScreen.tempR.heig / ratioOfy));
using (Pen pen = new Pen(Color.Red, 2))
{
pictureBox.CreateGraphics().DrawRectangle(pen, ee);
// e.Graphics.DrawRectangle(pen, ee);
}
}
Run Code Online (Sandbox Code Playgroud)
这是在
private void PictureBox_Paint(object sender, PaintEventArgs e).
Run Code Online (Sandbox Code Playgroud)
for循环在另一个类中,创建一个picturebox,并初始化它的x,y等.但是,它绘制并立即删除它.或者有时甚至不画画.
如果我没有在每个图像后面放一个消息框,我甚至看不到矩形.你能帮助我吗?
每当 Windows 希望您绘制图片框时,就会调用图片框绘制方法。看起来您有时只绘制矩形。
if (IsRun())
Run Code Online (Sandbox Code Playgroud)
更改您的代码以始终进行绘图。
即这段代码不会绘制矩形。本的例子将在哪里。
private bool _once = true;
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (_once)
{
Rectangle ee = new Rectangle(10, 10, 30, 30);
using (Pen pen = new Pen(Color.Red, 2))
{
e.Graphics.DrawRectangle(pen, ee);
}
_once = false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37397 次 |
| 最近记录: |