コンボボックスにすべてのコンピュータのタイムゾーンを設定してから、デフォルトでローカルタイムゾーンを選択します。私はコンボボックスを作成することができますが、デフォルトの項目を選択すると私は困惑します。TimeZoneInfoをComboboxに追加してSeletedItemバッフルを設定する
'load up the combobox with all time zones
Dim tzCollection As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
cboClockTmZone1.DataSource = tzCollection
'the computers local time zone
Dim myZone As TimeZoneInfo = TimeZoneInfo.Local
'get the index of the local time zone in the collections
Dim idx As Integer = tzCollection.IndexOf(myZone)
Dim qdx As Integer = cboClockTmZone1.Items.IndexOf(myZone)
'set the time zone
'cboClockTmZone1.SelectedIndex = idx 'this works
cboClockTmZone1.SelectedIndex = qdx 'this does not
そのため、おそらくこれを理解するの私の不足が、私はコンボボックスにコレクションをバインドするとき、それがのTimeZoneInfoオブジェクトで満たされません。言い換えれば、TimeZoneInfo型の各リストアイテムではありませんか?もしそうなら、なぜqdxの割り当ては機能しませんか?私はコンボボックスでタイムゾーンオブジェクトを見つけることができなかったことを意味する-1を取得しますが、tzCollectionでそれを見つけることができます。私も.SelectedItemを使って実験しましたが、それはどちらも外に出ていませんでした。
私は、これがどのように機能するのか分かりません。これは、tzCollectionからcboアイテムへの1対1のマッピングがあると思うので、今は動作します。しかし、誰かがこの2つの方法で光を放つことができるので、私はよりよく理解できるので、私はそれを感謝するでしょう。
誰かがユニットテストを忘れてしまったように聞こえます! – IAbstract
私がやっていることから、他にももっと有利な回避策がありますか? – sinDizzy
あなたが持っているものは、私にはかなり良く見えます。 –