Properties 从属性数据库中设置属性值
我的数据库存储了formname、control和control属性类型值 我想要一行这样的代码Properties 从属性数据库中设置属性值,properties,vb6,controls,Properties,Vb6,Controls,我的数据库存储了formname、control和control属性类型值 我想要一行这样的代码 Forms(i%).Controls(ControlName$)).controlpropertytype$ = NewValue 我目前正在使用select case结构来处理各种属性类型。用一条语句来处理它会简单得多 使用helper函数,只需一行代码即可实现这一点。下面是将Form1上的文本框设置为值“aaa”的示例: Option Explicit Private Sub Test()
Forms(i%).Controls(ControlName$)).controlpropertytype$ = NewValue
我目前正在使用select case结构来处理各种属性类型。用一条语句来处理它会简单得多 使用helper函数,只需一行代码即可实现这一点。下面是将Form1上的文本框设置为值“aaa”的示例:
Option Explicit
Private Sub Test()
CallByName FindForm("Form1").Controls("Text1"), "Text", VbLet, "aaa"
End Sub
Public Function FindForm(ByVal Name As String) As Form
Dim f As Form
For Each f In Forms
If UCase(f.Name) = UCase(Name) Then
Set FindForm = f
Exit Function
End If
Next
End Function
虽然这是一个有趣的练习,但我不推荐这种方法。它假定窗体和控件都可以找到,但如果找不到,这一行程序将使你的应用程序崩溃
下面是。使用helper函数,只需一行代码即可实现这一点。下面是将Form1上的文本框设置为值“aaa”的示例:
Option Explicit
Private Sub Test()
CallByName FindForm("Form1").Controls("Text1"), "Text", VbLet, "aaa"
End Sub
Public Function FindForm(ByVal Name As String) As Form
Dim f As Form
For Each f In Forms
If UCase(f.Name) = UCase(Name) Then
Set FindForm = f
Exit Function
End If
Next
End Function
虽然这是一个有趣的练习,但我不推荐这种方法。它假定窗体和控件都可以找到,但如果找不到,这一行程序将使你的应用程序崩溃
这是。你不能一行完成。Forms集合将只接受一个索引,而不是您想要的字符串。不过,您可以使用一个helper函数在一行中完成这项工作。这里有一个鲜为人知的VB6/VBA命令。不过,您仍然需要一个(多行)函数来创建生成的一行。但它应该比选择案例结构更灵活,不能一行完成。Forms集合将只接受一个索引,而不是您想要的字符串。不过,您可以使用一个helper函数在一行中完成这项工作。这里有一个鲜为人知的VB6/VBA命令。不过,您仍然需要一个(多行)函数来创建生成的一行。但它应该比selectcase构造更灵活。