在对象名称中添加一个字母

时间:2014-02-03 14:37:19

标签: vb.net winforms

我有一系列以实用方式添加的成对文本字段,一个名为0_1,另一个名为0_1w。当事件发生(按键)到0_1时,我想要0_1w的东西,0_2,0_3等等...

是否可以抓住按键事件的发送者并将字母w附加到其末尾,或者是否有任何简单的方法可以在其他文本字段中使用w文本字段执行我需要的操作。 / p>

由于

1 个答案:

答案 0 :(得分:1)

每个控件都有Name属性,因此如果您将发件人强制转换为Control,您将能够获取该名称字符串。然后,您可以向其添加“w”并查找具有该名称的另一个控件。您可以使用表单上的Controls集合按名称查找控件。

Dim senderName As String = DirectCast(sender, Control).Name
Dim pairedName As String = senderName & "w"
Dim paired As Control = Me.Controls(pairedName)

但是,表单的Controls集合仅包含直接添加到其中的控件。如果发件人位于容器控件(例如Panel)内,则只有该面板控件将包含在表单的Controls集合中。在这种情况下,您需要查看面板的Controls集合。因此,由于两个配对控件可能位于同一个容器控件中,因此更安全:

Dim paired As Control = DirectCast(sender, Control).Parent.Controls(pairedName)