应用/取消按钮事件逻辑

时间:2013-03-26 11:11:16

标签: c# winforms visual-studio-2010 logic

我有一个类XMLProfile,它具有将数据写入/编辑/删除到xml文件中的方法。读取此数据并在Visual C#

的列表视图中显示
public void xmlwriter(string path)
        {
            XmlDocument xdoc = new XmlDocument();                
            xdoc.Load("C:\\product.txt);
            XmlNode fold = xdoc.CreateElement("Folder");
            XmlNode name = xdoc.CreateElement("Name");
            XmlNode rec = xdoc.CreateElement("Recurse");
            name.InnerText = path;
            rec.InnerText = "true";
            fold.AppendChild(name);
            fold.AppendChild(rec);
            xdoc.SelectSingleNode("//Folders").AppendChild(fold);
            xdoc.Save("C:\\product.txt");
        }

上面显示了写入方法(向xml添加新数据),删除如下所示

public void delete(string snode)
        {
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load("C:\\product.txt");
            foreach (XmlNode node in xdoc.SelectNodes("BackupProfile/Folders/Folder"))
            {
                string temp = node.SelectSingleNode("Name").InnerText;
                if (temp == snode)
                {
                    node.ParentNode.RemoveChild(node);
                }
            }
            xdoc.Save("C:\\product.txt");
        }

类似编辑和重置方法。

Fromm我的主程序表单我使用单击按钮调用这些方法

private void button8_Click(object sender, EventArgs e)
        {
            this.folderBrowserDialog1.ShowNewFolderButton = false;
            this.folderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer;
            DialogResult result = this.folderBrowserDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                // user selected folder will be added to the XML Profile for backup
                string path = this.folderBrowserDialog1.SelectedPath;
                XMLProfile xml = new XMLProfile();
                xml.xmlwriter(path);
                listView1.Items.Add(path);
            }
        }

上述方法用于添加从XMLProfile类调用xmlwriter方法的新数据。

一切正常,但现在我意识到只有在更改完成并保存之前才有一个“应用”按钮。

我该如何实现?我使用了这个链接StackOverflow,但它对我不起作用,实际上不确定如何在我的项目中实现它。与Apply按钮一起,我有一个Cancel按钮。 取消:显而易见不应保存更改,只需重新加载xml文件即可返回以前保存的版本。

感谢任何帮助,如果需要任何进一步的信息,请询问。谢谢。

2 个答案:

答案 0 :(得分:0)

您可以将“应用”按钮设置为禁用,并仅在保存成功后启用

答案 1 :(得分:0)

您是否还可以在此处粘贴ApplyButtonClick事件处理程序以获得更准确的答案? 但我想你需要这样的东西

public void OnApplyButtonClick(object sender, EvenArgs e)
{
this.ApplyBtn.Enabled = false;
//Your logic Here
}


public void xmlwriter(string path)
        {
btnApply.Enabled = false;
            XmlDocument xdoc = new XmlDocument();                
            xdoc.Load("C:\\product.txt);
            XmlNode fold = xdoc.CreateElement("Folder");
            XmlNode name = xdoc.CreateElement("Name");
            XmlNode rec = xdoc.CreateElement("Recurse");
            name.InnerText = path;
            rec.InnerText = "true";
            fold.AppendChild(name);
            fold.AppendChild(rec);
            xdoc.SelectSingleNode("//Folders").AppendChild(fold);
            xdoc.Save("C:\\product.txt");
btnApply.Enabled = true;
        }

public void DeleteNode(string snode)
        {
this.ApplyBtn.Enabled = false;
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load("C:\\product.txt");
            foreach (XmlNode node in xdoc.SelectNodes("BackupProfile/Folders/Folder"))
            {
                string temp = node.SelectSingleNode("Name").InnerText;
                if (temp == snode)
                {
                    node.ParentNode.RemoveChild(node);
                }
            }
            xdoc.Save("C:\\product.txt");
this.ApplyBtn.Enabled = true;
    }