none
關於表單資料的問題 RRS feed

  • 問題

  •  

    我看了這邊一些表單傳值的文章

    但是都沒試成功

     

    現在我的程式有form1跟form2兩個表單

     

    form1是登入頁面

    form2是登入成功的頁面

     

    但是我的form2是用  加入=>新增項目=>Windows Form 建立的

     

    不是用            Form Form2 = new Form();   產生的

    我現在想讓form1的textbox1讀到的帳號,傳給form2。讓form2能夠知道現在是那個帳號登入

    該怎麼做呢?

     

    各位先進請教教我

     

    2008年12月13日 下午 02:10

解答

  • Hi~

     

     

    開發Window Form時資料傳遞是很正常,相信接下來可能會問到

    "為什麼Login後要把Form1關閉只留Form2卻是全部都關閉呢??"

    其實google可以找到很多資料!!

     

    回歸話題:

    Web中大家因該都會使用Session來傳遞,但是再Window Form中呢?

    想必是發問者想要知道的答案,下面有參考範例↓↓

    不過建議看懂後再發問,了解OO這塊對開發Window Form很重要喔!!

     

    http://www.blueshop.com.tw/download/show.asp?pgmcde=PGM20081217142154R72

     

     

    2008年12月17日 上午 06:39

所有回覆

  • 工具只是在自動幫你產生部分程式碼出來而已

    實際上還是會有Form Form2 = new Form()這行的

    2008年12月13日 下午 05:48
  • 但是我在form1打

    form2.XXX都讀不到form2的東西阿

     

    到底該如何把帳號傳到form2??

    2008年12月13日 下午 05:52
  • HI,

     

    您可以這樣做:

     

    1) 先把Form2上供使用者輸入帳號的TextBox的Modifier屬性設定成internal, 將OK鍵的DialogResult屬性設定成OK

    2) 為Form1加入Load事件處理程序, 加入以下的程式:

        Form2 f=new Form2();

        if (f.ShowDialog()==DialogResult.OK)

        {

             //f.txtUsername.Text即為使用者輸入的帳號, 假設TextBox的物件名稱為txtUsername

        }

     

    tihs

    2008年12月14日 上午 12:57
  •  

    我是要把form1的值傳給form2

    form1是登入頁面

     

    我照你的方法作

    但是沒加if條件,加了條件我從form1按登入,會一值留在form1,不會到form2

     

     

    然後我在form2的Load打了

     

            private void Form2_Load(object sender, EventArgs e)
            {
                login f = new login();

                //login就是form1
                textBox1.Text = f.textBox1.Text;
            }

     

    form2的textbox執行的時候是空白的

    怎麼會這樣阿?

     

     

    2008年12月14日 上午 03:42
  • HI,

     

    因為您把動作省略了, 登入畫面的OK鍵沒有設定DialogResult, if也不加, 當然就做不出來囉

     

    tihs

    2008年12月14日 上午 08:04
  • 你是看了文章?

    為什麼人家這樣教,你會這樣做?

     

    public class WecomeForm:Form{

              public Wecome(string userName){

               txtWelcomeUser.Text="Hello !"+userName;

              }

    }

     

    public class MainForm:Form{

              private void Form_Load(object sender,EventArgs args){

                        if(WecomeFrom("Pan").ShowDialog()==DialogResult.OK){

                              //Other logic....

                        }

              }

    }

    2008年12月15日 上午 12:28
  • 我不懂DialogResult.OK 為什麼我不能用

    我是拉了一個botton,那個botton按下去之後

    跳到登入成功畫面,botton的位置是登入那個表單

    我全部照打還是不能

     

    2008年12月16日 下午 02:08
  • Hi~

     

     

    開發Window Form時資料傳遞是很正常,相信接下來可能會問到

    "為什麼Login後要把Form1關閉只留Form2卻是全部都關閉呢??"

    其實google可以找到很多資料!!

     

    回歸話題:

    Web中大家因該都會使用Session來傳遞,但是再Window Form中呢?

    想必是發問者想要知道的答案,下面有參考範例↓↓

    不過建議看懂後再發問,了解OO這塊對開發Window Form很重要喔!!

     

    http://www.blueshop.com.tw/download/show.asp?pgmcde=PGM20081217142154R72

     

     

    2008年12月17日 上午 06:39
  • private void Form2_Load(object sender, EventArgs e)
            {
                login f = new login();

                //login就是form1
                textBox1.Text = f.textBox1.Text;
            }

     

    你 f 沒有  Show or ShowDialog 怎麼會有值?

    2008年12月17日 上午 07:00
  • 我去下載程式

    看完之後問題以解決

    謝謝

     

    請問裡面的InfoData.cs

    是組件資訊檔

    是吧

    2008年12月17日 下午 01:02