Suren97 Ответов: 3

C# как добавить данные в combobox


у меня есть класс учителя и класс контроллера, который имеет список из класса учителя`
static public List<Teacher> teachers = new List<Teacher>();

у меня есть форма вставки, где я должен написать новые данные учителей и добавить их в combobox.Поле со списком, расположенном в другой форме, которую зовут Add_New_Group.Как я могу добавить новые данные учителя, которые я написал в форме вставки и combobox, расположенном в другой форме ' Add_new_group.

Что я уже пробовал:

В combobox он покажет мне имя и фамилию учителя,но когда я добавляю нового учителя и сохраняю его, в combobox показывает мне (коллекции) не имя и фамилию.В чем моя ошибка?
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);
        }
}



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

Maciej Los

Покажите нам объявление класса учителя и контролера...

3 Ответов

Рейтинг:
2

RickZeeland

Простой способ сделать это-разместить ваши свойства и классы следующим образом: public static В вашем Program.cs файл. Тогда просто ссылаться на них из ваших форм, но, похоже, вы уже сделали это в своем классе контроллера.
Так что, может быть, вам стоит обновить содержимое вашего comboBox пользуясь .Refresh или .Invalidate

Также смотрите ответы здесь: Как добавить элемент combobox из одной формы в другую форму combobox[^]


Suren97

Как я могу это сделать? где мне ее написать?

Suren97

public static string comboVar; только это я должен написать в программном классе?

RickZeeland

Нет, это был просто пример, вы должны использовать свой класс:
статический публичный список<teacher> teachers = новый список<teacher>();
Но, может быть, лучше сначала попробовать предложение Джона Симмонса, которое мне кажется хорошим ...

Рейтинг:
2

#realJSOP

Один из способов упростить добавление элементов в поле со списком-это переопределить ToString() метод элемента коллекции, так что он возвращает нужное свойство.

public class MyItem
{
    public string Name { get; set; }
    public override string ToString()
    {
        return this.Name;
    }
}

Чтобы добавить элементы в свой combobox:
// assuming a list of MyItem objects
List<MyItem> myItems;

// you can do something like this
this.comboBox.Items.Add(myItems);


Suren97

я должен создать новый класс MyItem? и где мне это написать?
Список<myitem> myItems;
это.поле со списком.Предметы.Добавить(myItems);

Рейтинг:
1

Suren97

Я ничего не понимаю.Не могли бы вы объяснить мне подробнее?

Maciej Los

Без проблем. Не могли бы вы сначала ответить на мой вопрос, который был опубликован в комментарии к вашему вопросу?

Suren97

ничего страшного, я уже нашел решение, мне просто нужно использовать цикл foreach :)

Suren97

Спасибо за то, что хотите мне помочь :)