我很擅长使用C#。我开始在星期一说实话,在此之前只有基本的MATLAB经验水平,所以我仍然是某种新的擦洗。根据我的谷歌搜索技巧,我已经问过我会问的问题,但我还没有找到一个有效的解决方案。
我目前正在编写一个程序,用于从Vimba相机获取图像,以及随后的图像处理,该程序包含一个UI,因此form1
。在此表单上,有pictureBoxLiveCamera
显示来自摄像机的实时录制。
我想做的是:
pictureBoxLiveCamera
顶部绘制两个矩形,表示图像的特定区域(这类似于一个魅力)drawRectanglesButton
时(此处我有问题)我已经探索了很多类似的线程,this one特别影响了我编写代码的方式,尽管它还没有按预期工作。
以下是我的代码的相关内容:
表单加载:
// Form loading
private void Form1_Load(object sender, EventArgs e)
{
pictureBoxLiveCamera.Paint += pictureBoxLiveCamera_Paint;
... //Vimba API startup and so on
}
按钮代码:
private void drawRectanglesButton_Click(object sender, EventArgs e)
{
this.Invalidate(); // force Redraw the form
}
矩形绘制代码:
public void pictureBoxLiveCamera_Paint(object sender, PaintEventArgs e)
{
Rectangle ee = new Rectangle(-5, 120, 790, 100);
using (Pen pen = new Pen(Color.Red, 2))
{
e.Graphics.DrawRectangle(pen, ee);
}
Rectangle eee = new Rectangle(-5, 364, 790, 100);
using (Pen pen = new Pen(Color.Red, 2))
{
e.Graphics.DrawRectangle(pen, eee);
}
}
我的问题如下:实际上,当我启动程序时,矩形已经被绘制,因此按钮什么都不做。
我很确定大多数人都会明白这个错误,但这一直让我疯狂。
非常感谢!
了Trion