【发布时间】:2016-08-20 17:07:32
【问题描述】:
一直在寻找这个问题的解决方案,找到了很多解决方案,但没有任何改变我的代码的行为。这是在 WinForms 中。
我正在加载一个带有 ComboBox 的表单,其中包含此枚举的值和名称,位于名为“Node”的类中。
class Node
{
public enum NodeType { Yield, Home, Parking, Light, None, Inbound, Outbound }
public NodeType Type;
}
然后在我的表单中,我有一个名为“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);
当程序运行时,列表会显示所有名称,并且在关闭表单时,我可以通过检索选定的值。类型。选定值。 我的问题是 ComboBox 不是从 Node 已经设置的值开始的。本质上是一行
Type.SelectedValue = node.Type;
什么都不做。我试过使用没有改变任何东西的 SelectedItem,并且
Type.SelectedIndex = (int)node.Type;
这导致了 ArgumentOutOfRangeException。
那么,我的问题是:如何设置 ComboBox 的起始值?
【问题讨论】: