C#如何在组合框中添加数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何在组合框中添加数据相关的知识,希望对你有一定的参考价值。
我有一个Teacher
和一个Controller
类,有一个Teacher
s列表。
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有两个关键属性,DataSource
和Displaymember
。您需要将列表设置为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:如何根据在数据网格中选择的项目自动在组合框中显示值?