Как добавить строку в сетку данных с помощью текстовых полей и кнопки

Итак, у меня есть datagridview, который заполнен списком объектов. Я добавил в форму 3 текстовых поля и кнопку. Вопрос в том, как вставить и заполнить другую строку в сетке данных текстом из текстовых полей.

это мой класс:

class Professor
    {
    private int id;
    private string name;
    private double salary; 

    public Professor()
    {
        this.id= 0;
        this.name = null;
        this.salary= 0;
    }
    public Professor(int m, string n, double s)
    {
        this.id= m;
        this.name = n;
        this.salary= s;
    }
    } 

Это объявление для списка:

ArrayList listProfessors = new ArrayList();

Это кнопка, которая заполняет DataGridView:

private void addInGridViewFromList_Click(object sender, EventArgs e)
        {
            string linie;
            System.IO.StreamReader file= new System.IO.StreamReader("D:\\Profesor\\Profesor\\Profesori.txt");
        while ((line= file.ReadLine()) != null)
        {
            string[] t = line.Split(',');                
        listProfessors .Add(new Professor(Convert.ToInt32(t[0]), t[1], Convert.ToDouble(t[2])));
        }
        file.Close();

        dataGridView1.DataSource = listProfessors ;
    }

И здесь, на этой кнопке, я хочу добавить еще одну строку вручную (используя texbox) в DataGridView.

private void AddFromKeyboard_Click(object sender, EventArgs e)
    {

    }

2 ответа

Вам нужно создать событие кнопки, которое делает то, что вы хотите, и когда кнопка нажата, вы добавляете новую строку с нужными текстовыми полями.

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.Rows.Add(textBox1.Text, textBox2.Text, textBox3.Text);
    }

изменить: так что попробуйте добавить новый элемент в свой список с помощью кнопки:

private void AddFromKeyboard_Click(object sender, EventArgs e)
{
   listProfessors.Add(new Professor(Convert.ToInt32(textBox1.Text), textBox2.Text, Convert.ToDouble(textBox3.Text)));
}

Прежде всего, вы должны предоставить нам немного своего кода, где вы делаете некоторые вещи, но без этого я также постараюсь объяснить вам,

в первую очередь вы можете сделать следующее: проверьте, является ли источник вашей таблицы данных некоторым списком, так что вы можете создать соответствующий объект из текстового поля и просто добавить его в свой список, являющийся источником для сетки данных, и просто обновить источник следующим образом:

dataGrid.ItemsSource=null;
dataGrid.ItemsSource = myCustomList;

Или вы можете сделать что-то вроде этого:

private void btnAdd_Click(object sender, EventArgs e)
{
        string firstColum = firstTextBox.Text;
        string secondColum = secondTextBox.Text;
        string[] row = { firstColum, secondColum };
        yourDatagrid.Rows.Add(row);
}

Но я снова говорю, что для полного правильного ответа вы должны предоставить / опубликовать свой код.

Все, что я надеюсь, что это поможет вам

Другие вопросы по тегам