2016-04-18 32 views
2

我将文本读取到GridView,然后将此文本从GridView移动到文本框进行编辑。我如何从选择行中替换已更改的数据并保存到我的文本文件中?当我从GridView移动到文本框时,如何更新文本文件

这是我写文件

private void button1_Click(object sender, EventArgs e) 
{ 
    using (System.IO.StreamWriter file = 
    new System.IO.StreamWriter(@"WriteLines2.txt", true)) 
    { 
     file.WriteLine(this.id.Text + "#" + this.judul.Text + "#" + this.isi.Text); 
    } 
} 

这是我的GridView

System.IO.StreamReader file = new System.IO.StreamReader("WriteLines2.txt"); 
    string[] columnnames = file.ReadLine().Split('#'); 
    DataTable dt = new DataTable(); 
    foreach (string c in columnnames) 
    { 
     dt.Columns.Add(c); 
    } 
    string newline; 
    while ((newline = file.ReadLine()) != null) 
    { 
     DataRow dr = dt.NewRow(); 
     string[] values = newline.Split('#'); 
     for (int i = 0; i < values.Length; i++) 
     { 
      dr[i] = values[i]; 
     } 
     dt.Rows.Add(dr); 
    } 
    file.Close(); 
    GridView.DataSource = dt; 

这是我网格视图移动到文本框

private void GridView_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    DataGridViewRow dr = GridView.SelectedRows[0]; 
    id.Text = dr.Cells["id"].Value.ToString(); 
    // or simply use column name instead of index 
    //dr.Cells["id"].Value.ToString(); 
    judul.Text = dr.Cells["judul"].Value.ToString(); 
    isi.Text = dr.Cells["subjek"].Value.ToString(); 
    //textBox4.Text = dr.Cells[3].Value.ToString(); 
    GridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
} 

enter image description here

+0

文本文件或文本框? – peter

+1

你能发布与textview,gridview和textbox相关的代码吗? – stackErr

+0

我更新了我的帖子 –

回答

0

你笑当初始化DataGridView时,不要在CellContentClick中调用GridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;。然后使用SelectionChanged Event代替CellContentClick Event,并使用CurrentCell.RowIndex为索引:

private void GridView_SelectionChanged(object sender, EventArgs e) 
{ 
    DataGridViewRow dr = GridView.Rows[GridView.CurrentCell.RowIndex]; 
    id.Text = dr.Cells[0].Value.ToString(); 
    judul.Text = dr.Cells[1].Value.ToString(); 
    isi.Text = dr.Cells[2].Value.ToString(); 
} 

buton1_Click增加了一个新的值到文件的末尾。我不确定那是否是你想要的。

相关问题