karl 发表于 2006-6-13 15:40:00

[VBA]急!!请教各位大侠:关于复选框

我编了个简单程序,如下所示:
Private Sub CommandButton1_Click()
Dim ptpick As Variant
Restraint_apply_node.Hide
ptpick = ThisDrawing.Utility.GetPoint
Dim pointobj As AcadPoint
If CheckBox1.Value = 1 Or CheckBox2.Value = 1 Or CheckBox3.Value = 1 Or_ CheckBox4.Value = 1 Or CheckBox5.Value = 1 Or CheckBox6.Value = 1 Then
      Set pointobj = ThisDrawing.ModelSpace.AddPoint(ptpick)
      ThisDrawing.SetVariable "pdmode", 67
      ThisDrawing.SetVariable "pdsize", 20
      
End If
      
Restraint_apply_node.Show
End Sub
目的是进行选取点操作后,经判断复选框的选项是否被选上,若被选上,则把选取点改变形式。但此程序执行后,好像并不能执行if语句,也就是努能改变点的形式,这个原因是什么呀?请大家帮忙了!!!

霹雳啪啦啦 发表于 2006-6-14 12:47:00

Value 属性
      
      
      

定义某给定的控件的状态或内容。
语法
object. Value [= Variant]
Value 属性的语法包括以下成分:
成分
描述object
必需。有效对象。Variant
可选。控件的状态或内容。
设置
控件
描述复选框
整数,表明此条目是否被选中。
Null表明该条目处于空的状态,既未被选中,也未被。
-1   True。表明此条目被选中。
0   False。表明此条目被清除。

68651521 发表于 2006-6-14 14:12:00

就CheckBox1.Value一值比较特殊 VBA里和VB里居然不通用 让人匪夷所思
如果想把VBA里的程序 转移至VB里
那这是必须改的一步
如同楼上说的 VBA里 VALUE值为 -1 或者 0 (也可以用 True 或者 False)
但是 VB里 却是 1 和0 (只能用False)
所以转换程序的时候 要多注意这一点

karl 发表于 2006-6-14 17:46:00

谢谢两位指点,我也试过了,只需把checkbox.value=1改为checkbox.value就ok了,它默认为false,选上后就是ture了。谢谢!!!!
页: [1]
查看完整版本: [VBA]急!!请教各位大侠:关于复选框