2016-05-01 1 views
0

これは初めての投稿ですが、残念です。私は.txtファイルに保存されている情報を表示する1つの形式を持つプログラムを作成しています。別のフォームを使って新しい情報をそのファイルに入れることができる新しいボタンがあります。情報を保存するとファイルに保存されますが、元のフォームに戻ると情報は表示されません。以下は私が入れたコードです。はい、私はC#を初めて使っています。C#別のフォームに表示するためにtxtファイルに保存された1つのフォームから情報を取得する方法

まずフォーム

public partial class Form1 : Form 
{ 
    public List<String> pateintNumber; 
    public List<String> patientFirstName; 
    public List<String> patientMiddleName; 
    public List<String> patientLastName; 
    public List<String> patientDOB; 
    public bool test = false; 
    public int counter; 
    public int g; 

    public void cacheInfo() 
    { 
     StreamReader getLength = new StreamReader("../../../patient info.txt"); 
     string lineInfo = getLength.ReadLine(); 

     counter = 0; 
     while (lineInfo != null) 
     { 
      counter++; 
      lineInfo = getLength.ReadLine(); 
     } 
     getLength.Close(); 
     //MessageBox.Show(Convert.ToString(counter)); 
     pateintNumber = new List<String>(1); 
     patientFirstName = new List<String>(1); 
     patientMiddleName = new List<String>(1); 
     patientLastName = new List<String>(1); 
     patientDOB = new List<String>(1); 


     g = 0; 
     StreamReader getInfo = new StreamReader("../../../patient info.txt"); 
     lineInfo = getInfo.ReadLine(); 
     while (g < counter) 
     { 
      //MessageBox.Show(lineInfo); 
      String[] info = lineInfo.Split(','); 
      pateintNumber.Add(info[0]); 
      patientFirstName.Add(info[1]); 
      patientMiddleName.Add(info[2]); 
      patientLastName.Add(info[3]); 
      patientDOB.Add(info[4]); 
      lineInfo = getInfo.ReadLine(); 
      g++; 
     } 

     g = 0; 
     lbPateintNumber.Text = pateintNumber[g]; 
     lbPateintFIrstName.Text = patientFirstName[g]; 
     lbPateintMiddleName.Text = patientMiddleName[g]; 
     lbPateintLastName.Text = patientLastName[g]; 
     lbPateintDOB.Text = patientDOB[g]; 

     getInfo.Close(); 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
     cacheInfo(); 
    } 

    private void Form_Shown(object sender, EventArgs e) 
    { 

    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     g++; 

     if (g > counter - 1) 
     { 
      g = 0; 
      lbPateintNumber.Text = pateintNumber[g]; 
      lbPateintFIrstName.Text = patientFirstName[g]; 
      lbPateintMiddleName.Text = patientMiddleName[g]; 
      lbPateintLastName.Text = patientLastName[g]; 
      lbPateintDOB.Text = patientDOB[g]; 
     } 
     else 
     { 
      lbPateintNumber.Text = pateintNumber[g]; 
      lbPateintFIrstName.Text = patientFirstName[g]; 
      lbPateintMiddleName.Text = patientMiddleName[g]; 
      lbPateintLastName.Text = patientLastName[g]; 
      lbPateintDOB.Text = patientDOB[g]; 
     } 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     g--; 

     if (g < 0) 
     { 
      g = counter - 1; 
      lbPateintNumber.Text = pateintNumber[g]; 
      lbPateintFIrstName.Text = patientFirstName[g]; 
      lbPateintMiddleName.Text = patientMiddleName[g]; 
      lbPateintLastName.Text = patientLastName[g]; 
      lbPateintDOB.Text = patientDOB[g]; 
     } 
     else 
     { 
      lbPateintNumber.Text = pateintNumber[g]; 
      lbPateintFIrstName.Text = patientFirstName[g]; 
      lbPateintMiddleName.Text = patientMiddleName[g]; 
      lbPateintLastName.Text = patientLastName[g]; 
      lbPateintDOB.Text = patientDOB[g]; 
     } 
    } 

    private void barNew_Click(object sender, EventArgs e) 
    { 
     Form2 frm = new Form2(); 
     frm.ShowDialog(); 
    } 

}//end of program 

第二の形式

public partial class Form2 : Form 
{ 
    public string newFirstName; 
    public string newMiddleName; 
    public string newLastName; 
    public string newDOB; 

    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     int counter = 0; 
     StreamReader getLength = new StreamReader("../../../patient info.txt"); 
     string lineInfo = getLength.ReadLine(); 

     while (lineInfo != null) 
     { 
      counter++; 
      lineInfo = getLength.ReadLine(); 
     } 
     getLength.Close(); 
     counter++; 
     StreamWriter writeNewPatient = new StreamWriter("../../../patient info.txt", true); 
     writeNewPatient.WriteLine("000" + counter + ", " + tbFirstName.Text + ", " + tbMiddleName.Text + ", " + tbLastName.Text + ", " + tbDOB.Text); 
     writeNewPatient.Flush(); 
     writeNewPatient.Close(); 
     Form1 frm = new Form1(); 
     frm.pateintNumber.Add("000" + counter); 
     frm.patientFirstName.Add(tbFirstName.Text); 
     frm.patientMiddleName.Add(tbMiddleName.Text); 
     frm.patientLastName.Add(tbLastName.Text); 
     frm.patientDOB.Add(tbDOB.Text); 
     frm.counter = frm.counter++; 

     this.Close(); //to turn off current app 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 
} //end of program 
+0

あなたはここにあまりにも詳細を持っています。あなたはおそらくこれをたくさんカットして、まだ問題を示す何かを持っている可能性があります。 http://stackoverflow.com/help/mcveを参照してください – Tibrogargan

答えて

0

public partial class Form2 : Form 
{ 
    public string newFirstName; 
    public string newMiddleName; 
    public string newLastName; 
    public string newDOB; 

    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private Form1 m_MainForm; 
    public Form2(Form1 form) 
    { 
     InitializeComponent(); 
     m_MainForm = form; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     int counter = 0; 
     StreamReader getLength = new StreamReader("../../../patient info.txt"); 
     string lineInfo = getLength.ReadLine(); 

     while (lineInfo != null) 
     { 
      counter++; 
      lineInfo = getLength.ReadLine(); 
     } 
     getLength.Close(); 
     counter++; 
     StreamWriter writeNewPatient = new StreamWriter("../../../patient info.txt", true); 
     writeNewPatient.WriteLine("000" + counter + ", " + tbFirstName.Text + ", " + tbMiddleName.Text + ", " + tbLastName.Text + ", " + tbDOB.Text); 
     writeNewPatient.Flush(); 
     writeNewPatient.Close(); 
     Form1 frm = new Form1(); 
     frm.pateintNumber.Add("000" + counter); 
     frm.patientFirstName.Add(tbFirstName.Text); 
     frm.patientMiddleName.Add(tbMiddleName.Text); 
     frm.patientLastName.Add(tbLastName.Text); 
     frm.patientDOB.Add(tbDOB.Text); 
     frm.counter = frm.counter++; 

     if (!Object.ReferenceEquals(null, m_MainForm)) 
     { 
      m_MainForm.cacheInfo(); 
     } 
     this.Close(); //to turn off current app 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     if (!Object.ReferenceEquals(null, m_MainForm)) 
     { 
      m_MainForm.cacheInfo(); 
     } 
     this.Close(); 
    } 
} //end of program 

のように2番目のフォームを作成し、この

private void barNew_Click(object sender, EventArgs e) 
    { 
     Form2 frm = new Form2(this); 
     frm.ShowDialog(); 
    } 
のように最初の1から2番目のフォームを呼び出します
+0

魅力のようなおかげで仕事。私は今それを通って歩いて、どこが間違っているのかを知ることができます。 –

+0

あなたは歓迎です – Mostafiz

関連する問題