0

我正在编写一个程序,我可以在其中将项目添加到DataGridView. 这完美地工作。我有一个删除按钮,用于从DataGridView. 这是有效的,但并不完美。它会删除我的项目,但如果我重新启动程序,这些项目仍然存在。我将这些项目保存到一个 xml 文件中。所以在这里你可以看到我添加项目的代码DataGridView

private void btnSave_Click(object sender, EventArgs e)
        {
            if (!File.Exists(@"C:\Users\rs\Desktop\Save\save.xml"))
            {
                using (File.Create(@"C:\Users\rs\Desktop\Save\save.xml")) { }
            }

            xmlnode = new XElement("iToDo",
                    new XElement("Name", txtName.Text),
                    new XElement("Priorität", comPrio.Text),
                    new XElement("Anfangsdatum", txtStart.Text),
                    new XElement("Enddatum", txtEnd.Text),
                    new XElement("Bemerkung", txtComment.Text)
            );

            try
            {
                xmlFile = XElement.Load(@"C:\Users\rs\Desktop\Save\save.xml");
                xmlFile.Add(xmlnode);
            }
            catch (XmlException)
            {
                xmlFile = new XElement("ToDos", xmlnode);
            }

            xmlFile.Save(@"C:\Users\rs\Desktop\Save\save.xml");
            DataSet flatDataSet = new DataSet();
            flatDataSet.ReadXml(@"C:\Users\rs\Desktop\Save\save.xml");
            DataTable table = flatDataSet.Tables[0];
            dataGridToDo.DataSource = table;
        }

在这里你可以看到我删除行的代码:

private void btnDelete_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in this.dataGridToDo.SelectedRows)
            {
                dataGridToDo.Rows.RemoveAt(row.Index);
            }
        }

我试图把它放进去Form_Closing(),但它不起作用:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = false;
            Application.Exit();
        }

有人可以提示我如何解决这个问题吗?

提前致谢

干杯

4

1 回答 1

1

嗯..我对您的 FormClosing 代码有点困惑。您从 xmlFile 写入 xml 文件并立即再次读取它?在表单上关闭读取它的结果将是多余的,因为数据网格将被破坏退出

于 2013-09-24T14:50:13.843 回答