我有一个带有图片框的表格,可以画一张自由的手势。
我添加了form_load
中图像的初始化和清除按钮的单击事件。当我单击清除按钮时,图像被清除,鼠标移动到图片框上,将显示最后绘制的图像。
我的问题是,如何验证图片框是否为空? 只是我不想允许保存空图像。
答案 0 :(得分:11)
PictureBox1.Image = Nothing
答案 1 :(得分:5)
Private Sub ClearPictureBox(pb As PictureBox)
pb.Image = Nothing
pb.BackColor = Color.Empty
pb.Invalidate()
End Sub
答案 2 :(得分:1)
C# bool clearImage; clearButton_Click(...) { clearImage = true; img.Invalidate(); }
img_Paint(...)
{
if (clearImage)
{
clearImage = false;
e.Graphics.Clear(Color.White);
}
}
VB.NET
Private clearImage As Boolean
Private Sub button_click(ByVal sender As Object, ByVal e As eventargs) Handels....
clearImage = True
img.Invalidate()
End Sub
Private Sub img_Paint(ByVal sender As Object, ByVal e As ...) Handels ....
If clearImage Then
clearImage = False
e.Graphics.Clear(Color.White)
End If
End Sub
答案 3 :(得分:1)
如果您需要在图片框中重置图片,可以执行此代码(在c#中)
private void your_name_picturebox_MouseDoubleClick(object sender, MouseEventArgs e)
{
your_name_picturebox.Image=null;
}
答案 4 :(得分:0)
您的代码中可能存在一些逻辑错误。检查mousemove或mousehover事件,确保它没有将图像分配给图片框。
您可以清除现有图像,而不是使用按钮不为新图像指定任何内容。这可能更好,因为您不必再创建新图像,然后再次绘制它。
g = Graphics.FromImage(PictureBox1.Image)
g.Clear(PictureBox1.BackColor)
答案 5 :(得分:0)
我只画了一个填充的空白矩形来覆盖代码开头的图像
Dim graph As Graphics = pbChart.CreateGraphics
'to clear image
graph.FillRectangle(Brushes.Azure, 0, 0, 500, 500)