1

Visual Basic Express 2010 エディションを使用しています。cboTester という名前のコンボ ボックス、cboOutput という出力コンボ ボックス、および「ListClass」という別のクラスがあります。

cboTester には、EN、FR、DE の 3 つのオプションがあります。

リスト クラスには 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)

--- 行の下を編集 14/06/2013 2:45AM GMT ここでもう少し情報を提供することでできるようです。

なぜこのようにしたいのかというと、Arrayname_Lang の記述で設定された配列がたくさんあるからです (例: Reasons_EN, Reasons_FR, Reasons_DE, House_EN, House_FR,House_DE)。ロード関数を次のように記述します。

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

考えられるすべてのバリアントを記述するのではなく、

ありがとうモーディーズ

4

1 に答える 1

1

キー「EN」、「FR」、および「DE」を使用して、3 つのTester変数を単一の にします。Dictionary(Of String, String())

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 に答える