none
C#如何把form2 txtbox裡輸入的資料, 傳回form1的listbox裡? RRS feed

  • 問題

  •  

    請問如何把form2 txtbox裡所輸入的東西, 傳回form1的listbox裡面, 還有儲存到form1所打開的.txt檔裡面呢?

    請問有人能解答嗎? 謝謝!

    2008年1月22日 下午 01:58

所有回覆

  • 參考一下:

    Code Snippet

      private void button1_Click(object sender, EventArgs e)

            {

     

                Form1 fm1 = new Form1();

                Control[] ss = fm1.Controls.Find("Listbox1", true);

                ((ListBox)ss[0]).Items.Add(textBox1.Text);

     

                //假設Form1打開的txt檔案在C:\xxx.txt

                System.IO.File.WriteAllText("C:\\XXX.txt",textBox1.Text,Encoding.Default);

                fm1.ShowDialog();

     

            }

     

     

    2008年1月23日 上午 01:36
    版主
  • 感謝 LOLOTA, 我可以把form2所輸入的東西傳回form1的listbox裡面了

    但是目前的問題:

    1. 傳回form1的listbox後, 原本所打開的.txt檔顯示在listbox裡面的資料被清空了..

    如何才能讓原本的資料留著, 直接在list裡加入新輸入的資料呢?

     

    2. 當我把新資料傳回form1的listbox裡, 按Exit這個button的時候, form2會跳出又要我輸入新資料,

    沒有辦法正常的離開程式, 請問這該如何解決呢?

     

    我是剛學C#的初學者, 問一些笨問題, 真不好意思..

    2008年1月23日 上午 07:54
  • 1. 可以修改成這樣:

    Code Snippet

        private void button1_Click(object sender, EventArgs e)

            {

     

                Form1 fm1 = new Form1();

                Control[] ss = fm1.Controls.Find("Listbox1", true);

                ((ListBox)ss[0]).Items.Add(textBox1.Text);

     

                //假設Form1打開的txt檔案在C:\xxx.txt           

                StreamWriter objStreamWriter= new StreamWriter("C:\\XXX.txt",true,Encoding.Default);

                objStreamWriter.WriteLine(textBox1.Text);

                objStreamWriter.Close();

                fm1.ShowDialog();

     

            }

     

     

    2. 這邊您有做任何處理嗎?可否PO一下程式碼?

     

     

     

    2008年1月23日 上午 10:17
    版主
  • 小弟我目前這個button的code是這樣打:

    Code Snippet

    private void btnOK_Click(object sender, EventArgs e)
            {
                Form1 Form1 = new Form1();
                Control[] add = Form1.Controls.Find("lstNameList", true);
                ((ListBox)add[0]).Items.Add(txtNFirstName.Text + "," + txtNLastName.Text + "," + txtNPhone.Text + "," + txtNBirth.Text);

                System.IO.File.WriteAllText("檔案位置", txtbox.Text, Encoding.Default);
                Form1.ShowDialog();
            }

     

     

    目前這樣子打, 新輸入的資料可以到form1的listbox裡面了, 但原本listbox裡的資料, 卻會清空, 只顯示我新輸入的資料...

     

    至於這句:  System.IO.File.WriteAllText("檔案位置", txtbox.Text, Encoding.Default);

    要如何寫成把我新輸入的資料也寫到我目前form1所開的.txt檔的檔案裡. 也就是說不指定檔案位置, 使用者如果開啟任何一個.txt檔. 新輸入的質料, 就會儲存到使用者所開的檔案裡面, 而不是我指定的檔案裡..

     

    我貼一下我form1的開啟檔案button的code..

    Code Snippet

    private void btnOpen_Click(object sender, EventArgs e)
            {
                String filename;

                if (OFD.ShowDialog() == DialogResult.OK)
                {
                    filename = OFD.FileName;
                    txtFileName.Text = OFD.FileName;
                }
                else
                   return;
                try
                {
                    Details = new StreamReader(filename);
                }
                catch
                {
                    MessageBox.Show("File dose not exist");
                }

                while (Details.Peek() != -1)
                {
                    lstNameList.Items.Add(Details.ReadLine());
                }
            }

     

     

    2008年1月23日 上午 10:55