Как добавить строку в сетку данных с помощью текстовых полей и кнопки
Итак, у меня есть 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);
}
Но я снова говорю, что для полного правильного ответа вы должны предоставить / опубликовать свой код.
Все, что я надеюсь, что это поможет вам