C#如何在组合框中添加数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何在组合框中添加数据相关的知识,希望对你有一定的参考价值。

我有一个Teacher和一个Controller类,有一个Teachers列表。

static public List<Teacher> teachers = new List<Teacher>();

我有一个插入表单,我应该在其中输入新教师的数据并将其添加到组合框中。 Combobox位于另一种形式,名为Add_New_Group。如何添加我在插入表单中输入的新教师数据和另一个Add_New_Group表单中的组合框。

在组合框中,它会显示教师的姓名和姓氏,但是当我添加新教师并保存它时,在组合框中显示我(收藏集)而不是姓名。我的错是什么?

public partial class Add_New_Group : Form // in Add_New_Group form
{
    public Add_New_Group()
    {
        InitializeComponent();
        comboBox1.Items.Add(Controller.teachers);
    }
}

public partial class Insert : Form // in Insert form
{
    private void button2_Click(object sender, EventArgs e)
    {
        Teacher x = new Teacher(textBox1.Text,textBox2.Text, int.Parse(textBox3.Text), textBox4.Text, n);
        Controller.teachers.Add(x);
   }
}
答案

您一次只能添加一个项目,它必须是字符串,而不是教师。因此,例如,如果需要,您可以循环并添加每个教师的姓名。

foreach ( var teacher in Controller.teachers )
{
   var textToAdd = string.Format("{0} {1}", teacher.FirstName, teacher.LastName);
   comboBox1.Items.Add(textToAdd);
}
另一答案

您应该使用数据绑定。 ComboBox有两个关键属性,DataSourceDisplaymember。您需要将列表设置为DataSource,将Name属性设置为DisplayMember。此外,每次将教师添加到列表时,必须重新设置DataSource以刷新项目,否则内容将不会更新。

这是一个例子:

static List<Teacher> teachers = new List<teachers>();

public void AddTeacher()
{
    Teacher x = new Teacher(textBox1.Text,textBox2.Text, int.Parse(textBox3.Text), textBox4.Text, n);
    comboBox1.DataSource = null;
    comboBox1.DataSource = teachers;
    comboBox1.DisplayMember = "Name";
}

以上是关于C#如何在组合框中添加数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在组合框中添加项目?

如何根据从其他框中选择的文本更改动态创建的组合框的显示项

如何从我的SQL SERVER获取我的数据库列表,并使用javafx将其添加到组合框中

C# CaliburnMicro:如何根据在数据网格中选择的项目自动在组合框中显示值?

C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)

如何更改 Ext js 组合框中某些值的索引