2016-03-04 140 views
2

我将两个文本框保存为.XML文件。现在我想将它们加载到我的文本框中以便能够编辑它们。我也继承了Person类。任何帮助?由于从XML文件填充文本框

public partial class TeacherForm : Form 
{ 
    public TeacherForm() 
    { 
     InitializeComponent(); 
    } 

    private void tSavebtn_Click(object sender, EventArgs e) 

    { 
     try 
     { 
      Teacher teacher = new Teacher(); 
      teacher.Name1 = tNametxtBox.Text; 
      teacher.ID1 = tIDtxtBox.Text; 
      TeacherXML.Save(teacher); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

public class TeacherXML 
{ 
    private const string DataRepositoryFolder = "data\\Teachers\\"; 
    private const string FileExtension = ".xml"; 

    public static bool Save(Teacher teacher) 
    { 
     XmlSerializer xs = new XmlSerializer(typeof(Teacher)); 

     string targetPath = GetRepositoryFilePath(teacher.ID1); 

     using (StreamWriter sw = new StreamWriter(targetPath, false, Encoding.UTF8)) 
     { 
      xs.Serialize(sw, teacher); 
     } 
     return true; 
    } 

编辑:


public static Teacher Load(string ID) 
    { 
     string targetPath = GetRepositoryFilePath(ID); 

     if (File.Exists(targetPath)) 
     { 
      XmlSerializer xs = new XmlSerializer(typeof(Teacher)); 
      using (StreamReader sr = new StreamReader(targetPath)) 
      { 
       return xs.Deserialize(sr) as Teacher; 
      } 
     } 

     return null; 
    } 

我还创建了位..所有我现在需要的是从例如打开一个文件的打开文件对话框用BtnClick操作选择文件并加载文本框。由于

回答

3

要在Button_Click加载:

添加事件处理程序到您的按钮(在这里我把它叫做button1):

button1.Click += button1_Click; 

在你button1_Click,你可以这样做:

private void button1_Click_1(object sender, EventArgs e) 
{ 
    OpenFileDialog ofd = new OpenFileDialog(); 
    ofd.Filter = "XML Files|*.xml"; 
    if(ofd.ShowDialog()== System.Windows.Forms.DialogResult.OK) 
    { 
     try 
     { 
      XmlSerializer xs = new XmlSerializer(typeof(Teacher)); 
      using (FileStream sr = new FileStream(ofd.FileName, FileMode.Open)) 
      { 
       var teacher = xs.Deserialize(sr) as Teacher; 

       tNametxtBox.Text = teacher.Name1; 
       tIDtxtBox.Text = teacher.ID1; 
      } 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
} 
+0

编辑我的代码....看一看。谢谢 –

+0

我需要在btnClick动作上的OpenFileDialog ...这不是在btnClick动作...我想XD谢谢 –

+0

@Luke_i看到我的编辑。 – Sakura