Private Sub Combo1_click()Select Case Combo1.Text Case "电机电压" Picture2.Visible = True Picture2.Scale (0, Picture2.ScaleHeight)-(Picture2.ScaleWidth, 0) Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlack 谢谢楼上回复 程序是这样的,像楼上说的改动后还是不能显示啊
Option ExplicitPrivate Sub Combo1_click() Select Case Combo1.Text Case "电机电压" Picture2.Visible = True Picture2.Scale (0, 0)-(Picture2.ScaleWidth, Picture2.ScaleHeight) Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlack End Select End SubPrivate Sub Form_Load() Combo1.AddItem "电机电压" Picture2.AutoRedraw = True End Sub
Case "电机电压"
Picture2.Visible = True
Picture2.Scale (0, Picture2.ScaleHeight)-(Picture2.ScaleWidth, 0)
Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlack
谢谢楼上回复
程序是这样的,像楼上说的改动后还是不能显示啊
Select Case Combo1.Text
Case "电机电压"
Picture2.Visible = True
Picture2.Scale (0, 0)-(Picture2.ScaleWidth, Picture2.ScaleHeight)
Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlack
End Select
End SubPrivate Sub Form_Load()
Combo1.AddItem "电机电压"
Picture2.AutoRedraw = True
End Sub
Picture2.Scale (0, Picture2.ScaleHeight)-(Picture2.ScaleWidth, 0)
Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlack
Picture2.Refresh '加这句试试
这个冲突了
你定义了picture2的左上坐标是0,ScaleHeight,右下坐标是ScaleWidth,0,
于实际picture使用的坐标系相反(左上0,0 右下 width,height)你后面画的线条,不在picture2显示的范围里面..你注意看看下面的程序的调试 输出就明白了:
Private Sub Form_Load()
Picture2.Visible = True
'原始的picture坐标范围
With Picture2
Debug.Print .ScaleLeft, .ScaleTop, .ScaleWidth, .ScaleHeight
End WithPicture2.Scale (0, Picture2.ScaleHeight)-(Picture2.ScaleWidth, 0)
'修改后的坐标范围
With Picture2
Debug.Print .ScaleLeft, .ScaleTop, .ScaleWidth, .ScaleHeight
'后面是你划线的坐标..
Debug.Print .ScaleWidth / 2, .ScaleHeight, .ScaleWidth / 2, 0
End With
Picture2.Line (Picture2.ScaleWidth / 2, Picture2.ScaleHeight)-(Picture2.ScaleWidth / 2, 0), vbBlackEnd Sub
Picture2.Scale (0, Picture2.ScaleHeight)-(Picture2.ScaleWidth, 0)
后,左上是0,100,大小没变化,右下是 100,0,ScaleWidth=100,ScaleHeight=-100划线是(50,-100)-(50,0),正好在显示区域之外..