在Userform代码

时间:2016-05-30 06:12:12

标签: vb.net

我有一个带有两个用户表单的模拟器,可以在彼此之间来回传递信息(一个是MainForm,另一个是CreatureFinder)。

当按下MainForm上的一个牌组槽按钮时(其中所有20个对应于你或敌人牌组中的一个生物),它会打开CreatureFinder,以便你可以选择哪个生物进入槽位(它也是让你编辑某些参数,比如生物的等级。

为简单起见,代码缩短了:

If CreatureNumberLabel.Text = "1" Then
   MainForm.YourCreature1Skill1Label.Text = Skill1Label.Text
   MainForm.YourCreature1Skill2Label.Text = Skill2Label.Text
   MainForm.YourCreature1Skill3Label.Text = Skill3Label.Text
End If

我想删除If Then语句,并将“YourCreature1”更改为“YourCreature”&无论CreatureNumberLabel.Text设置为什么值。

2 个答案:

答案 0 :(得分:0)

您可以使用某种控制数组。在表单加载时,为控件创建数组并分配其元素(每个数组为20行代码),之后您可以像下一个一样使用它们:

Dim CreatureNum As Integer = CInt(CreatureNumberLabel.Text)  'don't forget validation
MainFormYourCreatureSkillLabelArray(CreatureNum).Text = SkillLabel(CreatureNum).Text

答案 1 :(得分:0)

如果是VBA,你可以跳过

If CreatureNumberLabel.Text = "1" Then

只需输入:

MainForm.Controls("YourCreature" & CreatureNumberLabel.Text & "Skill1Label").Text = Skill1Label.Text

Skill2Label.TextSkill3Label.Text等......