Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从DataGridView中选择行并将其放置在文本框中_C#_Xml_Winforms_Datagridview - Fatal编程技术网

C# 从DataGridView中选择行并将其放置在文本框中

C# 从DataGridView中选择行并将其放置在文本框中,c#,xml,winforms,datagridview,C#,Xml,Winforms,Datagridview,我有一个windows窗体应用程序,它有一个datagridview来显示一个菜单,里面有很多食物 我希望能够允许用户选择一个座位号,然后选择一行,一旦选择了该行,该行中的所有信息将放在下面的可用文本框中,然后将在名为order.xml的新xml文件中提交 到目前为止,我已经对xml部分的保存进行了排序,但似乎无法完成datagridview任务 将数据保存在order.xml文件中的代码 XDocument doc = XDocument.Load("order.xml");

我有一个windows窗体应用程序,它有一个datagridview来显示一个菜单,里面有很多食物

我希望能够允许用户选择一个座位号,然后选择一行,一旦选择了该行,该行中的所有信息将放在下面的可用文本框中,然后将在名为
order.xml
的新xml文件中提交

到目前为止,我已经对xml部分的保存进行了排序,但似乎无法完成datagridview任务

将数据保存在order.xml文件中的代码

XDocument doc = XDocument.Load("order.xml");
        XElement root = new XElement("MenuInfo");
        root.Add(new XElement("Data1", dataGridView.DataSource));
        root.Add(new XElement("Data2", _seat));
        root.Add(new XElement("Data3", buttonTable1.Text));
        root.Add(new XElement("Data4", lbPrice.Text));
        doc.Element("Menu").Add(root);
        doc.Save("order.xml");

        MessageBox.Show("The order has been placed.");

您可以对RowEnter事件做出反应,如果用户输入一行,将触发该事件。然后执行以下操作:

private void dataGridView1_RowEnter(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            var yourGrid = sender as DataGridView;

            if (yourGrid != null)
            {
                var row = yourGrid.Rows[e.RowIndex].DataBoundItem as DataRowView;

                if (row != null)
                {
                    //Here you have access to the actual row.
                    //So simply get the string foreach column you need
                    string myStringForTextEdit = Convert.ToString(row["MealID"]) + Convert.ToString(row["Food"]) +
                                                 Convert.ToString(row["Price"]) + Convert.ToString(row["Time"]) +
                                                 Convert.ToString(row["Quantity"]);

                    myTextEdit.Text = myStringForTextEdit;
                }
            }
        }
这个简单的示例使用RowEnter事件获取当前行并基于所有行值构建字符串


我希望这能有所帮助。

root.Add(newxelement(“Data1”,dataGridView.DataSource))你从这一行中得到(期望得到)什么您可能应该编写一个函数,从DGV或DataTable行提取列表或/和字符串[]。试试看,你有什么问题就回来encounter@TaW从这段代码中,我只得到了这个插入的膳食seat1表1的价格,它没有输出完整的膳食名称,我不确定你所说的功能部分是什么意思。datagridview任务是什么?你到底想做什么?@FadiBanna DataGridView正在显示一个名为menu.xml的xml文件。我正在尝试允许用户选择一行,一旦选择该行,它就会显示在底部的文本框中,其中包含该行的所有信息。这是有意义的吗?嗯,我认为你应该考虑编辑你的帖子,所以这一点是清楚的,你张贴了一个与你所遇到的问题无关的代码,你应该把你尝试的代码张贴到文本框中,你的问题与XML没有任何关系,请编辑这个帖子,这样我们可以帮助你。