gpt4 book ai didi

c# - 如何在 WinForms 和 C# 中创建下拉菜单

转载 作者:可可西里 更新时间:2023-11-01 08:55:09 25 4
gpt4 key购买 nike

我是 Visual Studio/WinForms/C# 的新手

我正在尝试创建一个简单的下拉菜单,其中每个项目都可以有一个值和一个标签。

如果我正在创建一个网络应用程序,这就是我在 HTML 中所做的。但是我如何使用 C# 和 WinForms 做到这一点呢?

<select>
<option value="0">Please select One</option>
<option value="1">The first Options</option>
<option value="2">The Second Options</option>
<option value="3">The Third Options</option>
</select>

我试过 ComboBox,但似乎不允许我添加值和标签,用户仍然可以输入他们想要的任何内容。

我尝试了一个 ListBox,但它也不允许我使用值和标签。

最佳答案

如果你想要一个值和一个标题(标签),创建一个合适的类

class ComboItem
{
public int ID { get; set; }
public string Text { get; set; }
}

然后在 ComboBox 中,将 DisplayMember 属性设置为 Text,将 ValueMember 属性设置为 ID


ComboBox 的 DropDownStyle 决定了它的行为。 DropDownStyle.DropDown 允许用户输入文本。使用 DropDownStyle.DropDownList,用户只能从列表中选择项目。


您可以像这样填充 ComboBox:

myCombo.DataSource = new ComboItem[] {
new ComboItem{ ID = 1, Text = "One" },
new ComboItem{ ID = 2, Text = "Two" },
new ComboItem{ ID = 3, Text = "Three" }
};

DataSource 可以是任何类型的可枚举。

您可以像这样检索选定的 ID

int id = (int)myComboBox.SelectedValue;

请注意,您可以将任何类型的项目添加到 ComboBox。如果不指定 DisplayMemberValueMember 属性,ComboBox 使用对象的 ToString 方法来确定显示的文本,您可以通过 SelectedItem 属性检索选定的项目(不是选定的值)。

如果你添加这种类型的对象......

class Person
{
public int PersonID { get; set }
public string FirstName { get; set; }
public string LastName { get; set; }

public override string ToString()
{
return FirstName + " " + LastName;
}
}

...到组合框,您可以像这样检索选定的项目

Person selectedPerson = (Person)myComboBox.SelectedItem;
int personID = selectedPerson.PersonID;

ComboBox 将显示人员的名字和姓氏。

关于c# - 如何在 WinForms 和 C# 中创建下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com