VB2010。ユニットの列挙の内容をComboBoxに入力しようとしています。私は辞書でこれを行うことができました。何かのようなもの
Dim dUnits As New Dictionary(Of String, Integer)
Dim da As String
For Each enumValue As eUnits In System.Enum.GetValues(GetType(eUnits))
da = ConvertEnumToCommonName 'gets unique name for an enumeration
dUnits.Add(da, enumValue)
Next
cbo.DisplayMember = "Key" 'display the the common name
cbo.ValueMember = "Value" 'use the enumeration as the value
cbo.DataSource = New BindingSource(dUnits, Nothing)
うまく機能するフォームをロードすると。これで、ユーザーは表示するデフォルトの単位を選択できます。だから私は試してみます
Dim defUnits As eUnits = eUnits.Feet
Dim idx As Integer = cbo.Items.IndexOf(defUnits) 'doesnt work, returns a -1
cbo.SelectedIndex = idx
私はしばらくの間いくつかの調査を行ってきましたが、これは値を文字列として格納することと関係があるとかなり確信していますComboBox
。実際には、整数である列挙型を検索しています。私がその権利を持っているかどうかわからない。とにかく、デフォルトのアイテムを選択できないようです。私が試すことができる別のアプローチはありますか?