2
 Dim name1,name2,name3
 Dim i
 for i = 1 to 3
 Me.Controls("name" & i) = i
 next

每当我尝试执行此代码时,都会出现错误。可能是什么问题 ?

带着敬意,

南门。

4

2 回答 2

1

您正在尝试将 分配给Integer包含Controls 的集合的成员,可能除了没有名为 的控件之外name1name2或者name3在表单上。如果它有助于理解,那么您根本不会访问Object您在第一条语句中声明的三个类型变量:该Me.Controls属性检索当前表单中的控件集合(假设此代码位于表单类中的某个位置)。

您似乎遗漏了一些概念,包括强类型和 WinForms 中常见类的结构,例如Control. 我建议您从官方 MSDN演练开始。

于 2013-09-02T06:26:58.443 回答
0

在我看来,您有兴趣让控件说出TextBox1并为其Text属性分配一些值。以下示例可能会帮助您:

未经测试的示例代码:

 Dim name1,name2,name3
 Dim i
 for i = 1 to 3
   Dim ctrl() as Control = Me.Controls.Find("TextBox" & i, true)   ' Find control in all children controls
   if(ctrl isNot nothing andAlso ctrl.Length > 0) then ' if there is a control found
        Ctype(ctrl(0), Textbox).Text = i   ' Assign its text property to ith value.
   end if 
 next
于 2013-09-02T06:26:34.270 回答