フォームのドロップダウンモードのComboBoxが、データソースとして一意のアイテムの固定ArrayListを持っているコードがあります。通常、これはユーザーにとっては問題なく機能しますが、ごくまれに、SelectedIndexが、ユーザーが入力したComboBoxテキストプロパティで表されるアイテムに対応するアイテムに失敗する場合に発生します(正当なアイテムであっても)。
具体的には、ユーザーはComboBoxテキストフィールドに正当なエントリをテキストとして入力し、マウスを使用して別のコントロールに移動します。テキストフィールドには引き続きエントリが表示されますが、後で、表示されているテキストに対応するSelectedIndexに依存するメソッドを使用してユーザーが変更をコミットすると、SelectedIndexが正しくない場合があります。
公式ドキュメントhttp://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.text.aspxには次のように記載されています。
"Textプロパティをnullまたは空の文字列(" ")に設定すると、SelectedIndexが-1に設定されます。TextプロパティをItemsコレクションにある値に設定すると、SelectedIndexがそのアイテムのインデックスに設定されます。Textプロパティをに設定します。コレクションにない値は、SelectedIndexを変更しないままにします。」
したがって、正当なテキストエントリは、SelectedIndexを適切な番号に移動する必要があります。重要なことが起こる前に、イベントハンドラーに整合性チェックを強制できることは知っていますが、ComboBoxが実際に何をしているのかをよりよく理解するために、ドキュメントに直面するこのまれなバグの原因は何でしょうか。助けていただければ幸いです。