将所有数据从dataGridView传输到文本框

时间:2015-04-14 19:15:13

标签: c# datagridview

这是一个问题。我有一个餐厅计划,客户选择他想吃的东西,数据显示在dataGridView中。例如,6种不同的菜肴= 6种不同的行,每行包含名称,数量和价格。毕竟我需要打印账单,所以我想从dataGridView获取所有信息到文本框。所有行。我怎么能这样做?

P.S。我搜索了很多,但只有关于如何将CurrentRow数据传输到我找到的文本框的信息。

 private void Form4_Load(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        string billinfo = string.Empty;
        foreach (DataGridViewRow row in f1.dataGridView1.Rows)
        {
            billinfo = string.Format("{0}{1} {2} {3}{4}", billinfo, row.Cells["Name"].Value, row.Cells["Amount"].Value, row.Cells["Price"].Value, Environment.NewLine);
        }
        textBox1.Text = billinfo;
    }

2 个答案:

答案 0 :(得分:0)

只需循环遍历每一行并将列值格式化为字符串,添加System.Environment.NewLine即可分隔TextBox中的条目。

string billInfo = string.Empty;

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
  billInfo = string.Format("{0}{1} {2} {3}{4}", billInfo, row.Cells["Name"].Value, row.Cells["Amount"].Value, row.Cells["Price"].Value, Environment.NewLine);
}

this.textBox1.Text = billInfo;

答案 1 :(得分:0)

您似乎有多种形式。每个表单都有自己的“上下文”,以跟踪每个表单属于哪些“控件”。

在您的代码中,“ Form4_Load”是启动“ Form4”期间触发的事件。然后在此方法中创建“ new Form1()”。这是Form1类型的新的空Form。但是,它与您的“ Form1”的第一个实例没有任何关系或链接。您必须使用已经创建的“ f1”。

一种修复程序的粗略方法如下(下),但是获取对象和用法的全局实例不是一个好习惯。轻松跟踪哪些对象有效。无论如何,这是我的简单解决方法。

enter code here


private void Form4_Load(object sender, EventArgs e)
    {
        //I am assuming f1 is the name of your original Form1
        String f1DataGridViewName = f1.dataGridView1.Name.ToString();
        int f1RowCount = f1.RowCount;
        string billinfo = string.Empty;
        Console.Writeline("Form1 f1 Datagridview name is: {0}
                           ,Form1 f1 DataGridview row count is : {1}"
                           ,f1DataGridViewName, f1RowCount );
        foreach (DataGridViewRow row in f1.dataGridView1.Rows)
        {
            billinfo = string.Format("{0}{1} {2} {3}{4}", billinfo
                     , row.Cells["Name"].Value
                     , row.Cells["Amount"].Value
                     , row.Cells["Price"].Value
                     , Environment.NewLine);
        }
        textBox1.Text = billinfo;
    }