vb中cls方法出现的问题,高手看看那

来源:百度知道 编辑:UC知道 时间:2024/06/30 15:06:37
下面是点击一个按钮后进行的操作,用途是:把控件picture1的内容先清楚,因为picture1内的有个坐标是需要一直有的,所以调用cls方法后想再重新绘制一下坐标,但是结果确实坐标没有被绘制出来,picture1控件空了
Private Sub csh_Click()
Picture1.Cls
Picture1.DrawWidth = 1
Picture1.Line (0, Picture1.ScaleHeight / 2)-(Picture1.ScaleWidth, Picture1.ScaleHeight / 2), vbYellow
Picture1.Line (Picture1.ScaleWidth / 2, 0)-(Picture1.ScaleWidth / 2, Picture1.ScaleHeight), vbYellow
Picture1.DrawWidth = 6
Picture1.PSet (Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2), vbRed
Picture1.Scale (-Picture1.ScaleWidth / 2, -Picture1.ScaleHeight / 2)-(Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2)
Picture1.Print 0
End Sub

把这行注掉就可以了:

'Picture1.Scale (-Picture1.ScaleWidth / 2, -Picture1.ScaleHeight / 2)-(Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2)

问题出现在这一句上:

Picture1.Scale (-Picture1.ScaleWidth / 2, -Picture1.ScaleHeight / 2)-(Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2)

坐标系设置与点线的绘制相冲突,或相矛盾,导致所有的点线不能正常绘制(本例全集中在右下角一点了),与CLS无关(只是第一次未设坐标系绘制成功后的错觉)。
把这一句去掉或更改成与绘制坐标相一致即可,另外坐标系设置一般应在绘制点线之前。