【问题标题】:How can I update a text file when I move from gridview to textbox从gridview移动到文本框时如何更新文本文件
【发布时间】:2016-04-18 16:56:59
【问题描述】:

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

这是我的写文件

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

这是我的网格视图

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

【问题讨论】:

  • 文本文件还是文本框?
  • 可以贴一下textview、gridview和textbox相关的代码吗?

标签: c# winforms datagridview


【解决方案1】:

您应该在初始化 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 在文件末尾添加一个新值。我不确定这是否是你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多