この問題の解決策を探していましたが、十分な解決策が見つかりましたが、コードの動作は変更されませんでした。これはWinFormsにあります。列挙型の開始値を設定するComboBox
"Node"という名前のクラスの内部にあるこの列挙型の値と名前を含むフォームをComboBoxでロードしています。
class Node
{
public enum NodeType { Yield, Home, Parking, Light, None, Inbound, Outbound }
public NodeType Type;
}
私の形で、私は(コンストラクタから)のように設定されている「タイプ」という名前のComboBox、持って次に:
Node node = new Node();
node.Type = Node.NodeType.Home;
Type = new ComboBox();
Type.Location = new Point(77, 41);
Type.Size = new Size(121, 24);
Type.DropDownStyle = ComboBoxStyle.DropDownList;
Type.DisplayMember = "Name";
Type.ValueMember = "Value";
Type.DataSource = Enum.GetValues(typeof(Node.NodeType));
Type.SelectedValue = node.Type;
Controls.Add(Type);
をプログラムが実行されると、リストがすべて表示さフォームを閉じると、私は選択した値を取得することができます。 Type.SelectedValue。 私の問題は、ノードが既に設定されている値でComboBoxが開始しないことです。本質的に線
Type.SelectedValue = node.Type;
は何もしません。私は何も変更しなかったのSelectedItemを使用してみました、と例外ArgumentOutOfRangeExceptionを引き起こし
Type.SelectedIndex = (int)node.Type;
てきました。
私の質問は、どのように私はコンボボックスの開始値を設定するのですか?
が重複する可能性を、それを設定する](http://stackoverflow.com/questions/906899/binding-an-enum-to-a-winforms-combo-box-and-then-setting-it) – RomCoo