VB画多个圆怎么消掉其中一个?

2025-03-13 17:04:55
推荐回答(4个)
回答1:

办法不唯一,下面的方法是可以做到的。
先在list1里删除任意一行(任意一个红点的记录),然后重新载入图片,再按照list1里的留下的每一行(每一个红点)再画上红点,这样,要删的红点不存在了,其它红点都在,原来的图也还原了(特别是在删除红点处)。

(下面是再画一个和窗体颜色一样的假删除的方法,已经测试过,保证可以通。
加一个CheckBox,你可叫类似“涂改”什么的,不选时仍画红的(Check1.Value = 0 ),选中时是画背景色(就是抹掉),你还可以根据Check1.Value 来改变是否显示text的内容或显示字体的颜色以分辩哪一个是画,哪一个是涂(未包括)
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Check1.Value <> 0 Then
pencolor = &H8000000F ‘ 就是VB隐含的form背景色(backcolor)
Else
pencolor = vbRed
End If

If IsNumeric(Text3.Text) = True And IsNumeric(Text4.Text) = True Then
Form1.DrawStyle = 0
Form1.FillStyle = 0
Form1.FillColor = pencolor
Form1.Circle (X - 120, Y+120), 50, pencolor

。。。 。。。 。。。)

回答2:

具体你绘制的圆的具体位置,大小,保存到配置文件,当你要删除的时候确定是要删除那个,然后将这个圆的前景色改变为自己背景一样的颜色就起到了清除的作用。。配置文件也要对应删除即可

回答3:

用两个数组,记录下所有已经画圆的圆心点(X,Y)的值
点“回删”以后,用Cls命令清屏(底图不会清掉),然后按数组中保存的所有值再重画一遍圆,当然最后一次画的圆忽略掉

回答4:

最简单的方法,但是效率不高:
把所有绘制的点记录下来。
如果想删掉某个点,就把这个点从记录中删掉,然后把剩下的点在原始图片上再画一遍就好了。