2017-06-18 42 views
0

所以我有一個datagridview,它填充了一個對象列表。 我在窗體3文本框和一個按鈕上添加了。問題是如何使用文本框中的文本插入和填充另一行到datagridview中。如何使用文本框和按鈕在datagridview中添加一行

這是我的課:

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 ; 
    } 

這裏這個按鈕我想手動添加另一行(使用texboxes)到DataGridView中。

private void AddFromKeyboard_Click(object sender, EventArgs e) 
    { 

    } 

回答

1

您需要創建一個按鈕事件來完成您想要的操作,並且當按鈕按下時,您將添加一個帶有所需文本框的新行。

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))); 
} 
+0

它不工作 –

0

任何東西之前,你應該提供給我們,你正在做一些東西你的代碼的一點點,但沒有它我也會嘗試向你解釋,

首先,你可能要做的是接下來:check是你的datagrid的源代碼列表,因此你可以從你的文本框中創建一個相應的對象,你可以簡單地添加它到你的列表,它是datagrid的源代碼,只需刷新源代碼E:

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); 
} 

但我再次說的完全正確的答案,你應該提供/發佈您的代碼。

無論我希望這將有助於你

+0

它不工作...但我聽你的,我貼我的代碼。也許你可以檢查 –

相關問題