Im new to Winforms and C#. My form is suppose to read an XML and Add some of its nodes' values to the forms textBoxes. Also it should update/modify these nodes values by the values inserted by the user into the text boxes then save them. This is what the form looks like :
Form Design
The form code:
  bare in mind button4_Click = 'Add button'. button2_Click = 'Modify Button'.
  using System;  using System.ComponentModel;  using System.Windows.Forms;  using System.Xml;    namespace WindowsForm  {  public partial class Form1 : Form, INotifyPropertyChanged  {      XmlDocument doc = new XmlDocument();      XmlElement m_textElem1;      XmlElement m_textElem2;      XmlElement m_textElem3;        public string TextElement1Content      {          get { return m_textElem1.InnerText; }          set { m_textElem1.InnerText = value; }      }        public string TextElement2Content      {          get { return m_textElem2.InnerText; }          set { m_textElem2.InnerText = value; }      }        public string TextElement3Content      {          get { return m_textElem3.InnerText; }          set { m_textElem3.InnerText = value; }      }      public Form1()      {          InitializeComponent();      }          private void Form1_Load(object sender, EventArgs e)      {        }          private void button2_Click(object sender, EventArgs e)        {          doc.Load("C:\\Users\\Fahad\\Documents\\Visual studio 2015\\Projects\\ClassLibrary1\\XMLFile3.xml");          m_textElem1 = doc.SelectSingleNode("Twittercards/Card1/title") as XmlElement;          m_textElem2 = doc.SelectSingleNode("Twittercards/Card1/image") as XmlElement;          m_textElem3 = doc.SelectSingleNode("Twittercards/Card1/description") as XmlElement;            textBox1.DataBindings.Add("Text", this, "TextElement1Content");          textBox2.DataBindings.Add("Text", this, "TextElement2Content");          richTextBox1.DataBindings.Add("Text", this, "TextElement3Content");        }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)      {          comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;        }        private void textBox1_TextChanged(object sender, EventArgs e)      {        }        private void button3_Click(object sender, EventArgs e)      {        }        XmlDocument xDoc = null;        private void button4_Click(object sender, EventArgs e)      {            OpenFileDialog ofd = new OpenFileDialog();            if (ofd.ShowDialog() == DialogResult.OK)             {                XmlElement root = xDoc.DocumentElement;              XmlNodeList nodes = root.SelectNodes("Twittercards/Card1");              xDoc.Load(ofd.FileName);                foreach (XmlNode node in nodes)              {                  var node1 = xDoc.SelectSingleNode(@"Twittercards/Card1/title");                  node1.InnerText = textBox1.Text;                  var node2 = xDoc.SelectSingleNode(@"Twittercards/Card1/image");                  node1.InnerText = textBox2.Text;                  var node3 = xDoc.SelectSingleNode(@"Twittercards/Card1/description");                  node1.InnerText = richTextBox1.Text;                  xDoc.Save(ofd.FileName);                  // textBox1.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/title").InnerText;                  //  textBox2.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/image").InnerText;                  //  richTextBox1.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/description").InnerText;              }          }      }        private void button1_Click(object sender, EventArgs e)      {          doc.Save("C:\\Users\\Fahad\\Documents\\Visual studio 2015\\Projects\\ClassLibrary1\\XMLFile3.xml");      }        public event PropertyChangedEventHandler PropertyChanged;        public void NotifyPropertyChanged(string propName)      {          if (PropertyChanged != null)          {              PropertyChanged(this, new PropertyChangedEventArgs(propName));          }      }        private void textBox2_TextChanged(object sender, EventArgs e)      {        }        private void richTextBox1_TextChanged(object sender, EventArgs e)      {        }  }      }
The exception from the 'Add button' comes from: XmlElement root = xDoc.DocumentElement;
And the exception from the 'Modify button' comes from: public string TextElement1Content { get { return m_textElem1.InnerText; } set { m_textElem1.InnerText = value; } }
How can i fix this code to solve my original task? Please help. Thanks
No comments:
Post a Comment