1

我正在使用 Visual Basic Express 2010 版。我有一个名为 cboTester 的组合框、一个名为 cboOutput 的输出组合框和一个名为“ListClass”的单独类

cboTester 有 3 个选项,EN、FR 和 DE。

在列表类中,我有 3 个字符串数组;

Public Shared Tester_EN() {"Yes", "No"} Public Shared Tester_FR() {"Maybe", "Kind of"} Public Shared Tester_DE() {"No", "No way"}

有没有一种使用 vb.net 的方法,我可以使用来自 cboTester 的输入来确定 cboOutput 的填充方式?

我在想它会类似于下面详述的答案。请注意; 这是自由类型编写的,不是从我可以检查的地方复制和粘贴的!

private sub cboTester_SelectedIndexChanged()
 if cboTester_SelectedItem = "EN" then
    strTest = "EN"
 else if cboTester_SelectedItem = "FR" then
    strTest = "FR" ...
end if

ArrayName = "ListClass.Tester_" & strTest

cboOutput.items.addrange(ArrayName)

--- 在 2013 年 6 月 14 日凌晨 2 点 45 分(格林威治标准时间)下方编辑 看来我可以在这里提供更多信息。

我想这样做的原因是因为我有很多很多的数组,这些数组都是用 Arrayname_Lang 的描述设置的(例如 Reasons_EN、Reasons_FR、Reasons_DE、House_EN、House_FR、House_DE)所以我希望能够将我的加载函数写为;

cboReasons.Items.AddRange("ListClass.reasons" & language)

而不必编写每个可能的变体

谢谢莫迪丝

4

1 回答 1

1

我会让你的三个Tester变量成为一个单一的变量Dictionary(Of String, String()),键为“EN”、“FR”和“DE”:

Public Shared Tester as Dictionary(Of String, String())
...
Tester = new Dictionary(Of String, String())
Tester.Add("EN", {"Yes", "No"});
Tester.Add("FR", {"Maybe", "Kind of"});
Tester.Add("DE", {"No", "No way"});

然后使用:

cboOutput.items.addrange(Tester(cboTester_SelectedItem)))

(抱歉任何语法差异,我的 VB.NET 有点生疏)

于 2013-06-14T01:17:46.963 回答