在加载时将USER CONTROL添加到VB6表单?

时间:2015-12-27 23:48:24

标签: user-controls vb6

我有一个显示客户信息的表单。我做的是我创建了一个用户控件,其中有一堆文本框彼此相邻排列,用于Fname,Lname,Dob,SSN等。在表单本身上,我创建了一个用户控件的副本,但带有标签以显示我将在USER CONTROL中提供的信息。所以在FORM_LOAD上,我从服务器中提取数据,我需要它添加与数据库中的客户端一样多的USER控件。我看到的问题是,每次我使用此语句添加控件

Dim myCtl As Control
Set myCtl = Controls.Add("Project1.UCclient", "MyCtl", frmClientUC)
        myCtl.Visible = True

....用户控件名称增加1。所以我在表单上添加的第一个是ucclient1,然后如果我添加另一个ucclient2,依此类推。另外,我加载了一个带有数据的USER CONTROLS(只是为了确保它有效),我必须指定我引用的是哪个ucclient。所以对于我加载的第一个来自SQL-SERVER的SELECTED数据然后做了这个......

ucclient1.fldFirstName =RS!FirstName
ucclient1.fldLastName = RS!LastName

...等所有其他领域。因为我必须指定我将数据放入哪个用户控件表单,有没有办法让它自己递增?可能循环?我是VB6的新手,我只是很难在没有1000行代码的情况下和谐地完成这项工作。

2 个答案:

答案 0 :(得分:0)

你会以与任何控制相同的方式做到这一点。在设计模式下将一个控件放在窗体上。将其index属性设置为0以使其成为控件数组。 (如果您有一个不想要任何控件的上下文,那么让它不可见,然后在需要时将其显示。)然后根据需要添加更多控件,设置Top和Left属性以定位它们在页面上。

Here是在运行时向控件数组添加控件的文档。

答案 1 :(得分:0)

确定。我发现了一种新的方式。它运作良好。 +在form1中,添加一个新的用户控件(U1)。 +将代码U2(另一个项目的用户控件)复制到U1中。使用相同的名称保存它。 +关闭U1 +在Form1中,打开ToolBox并单击U1。有一个错误消息apear,你会看到控件的名称丢失(缺少名称)。 +打开U2的特性。选择缺少的名称以查看控件类型。 +打开U1并添加控件并将其命名为相同名称(缺少名称)。 +返回Form1并单击工具箱中的U1以添加控件U1。 +使特性U1与U2相同。 抱歉我的英语。