none
form 與form 間 回傳多欄位值問題!! RRS feed

  • 問題

  • 小弟是c#新手,最近在遇到form與form間傳遞資料的問題,也google了很多但看到的都只是

    單一欄位的傳值方式,沒有一次可以傳送多個資料條件的範例,希望有此經驗的人能分亨一下作法!!!

    我的需求是form1開啟form2後,form2是準備為form1產生資料要填入的資料條件(多個控制項的值)

    form2按下確定後,可以在form1中接收,請問該怎麼做比較適當??

    2013年1月29日 上午 08:51

解答

  • 你好,你可以建立一個自訂Class,裡面有public properties 給所有你想用戶在Form2所輸入的資料。每當用戶要輸入時,你也已可以把值,儲存在這個class的instance中。

    再在回到Form1時傳回這個Instance,那便可以從Form1中取回那些值。

    另外,你可以在起一個"Global" 的 List of "Class1",那無論那一個form也可以access。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2013年1月29日 上午 09:10

所有回覆

  • 你好,你可以建立一個自訂Class,裡面有public properties 給所有你想用戶在Form2所輸入的資料。每當用戶要輸入時,你也已可以把值,儲存在這個class的instance中。

    再在回到Form1時傳回這個Instance,那便可以從Form1中取回那些值。

    另外,你可以在起一個"Global" 的 List of "Class1",那無論那一個form也可以access。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2013年1月29日 上午 09:10
  • 您好,
    您也可以透過在AppDomain.SetDataAppDomain.GetData來存取資料哦!

    在form2使用SetData,然後在form1透過GetData取回資料!

    AppDomain currentDomain = AppDomain.CurrentDomain;
    currentDomain.SetData("myKey1", "YourValue");
    string myKey1 = (string)currentDomain.GetData("myKey1");


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年1月29日 上午 09:27
  • 老調重彈 -- 再談 Windows Form 程式視窗互相傳值(1)

    老調重彈 -- 再談 Windows Form 程式視窗互相傳值(2)

    這是延伸 KenLin 的說法

    建一個 Interface , 裡面你想包多少 Property 就包多少 Property



    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年1月29日 上午 09:35
    版主
  • Hi,

    傳單一欄位跟多欄位概念是一樣的

    像是上面大大說的class包住

    或是亂馬大說的那樣都可以解

    不過既然是Form1開啟Form2的

    其實Form1有Form2的物件實體

    Form1可以直接拿到Form2的成員屬性

    在Form2關閉時透過Form2的物件實體去將Form2的成員屬性塞回給Form1就可以了

    或者換個想法

    你應該把View跟Model切開

    Form1跟Form2都是View

    只是Binding到同一個Model...


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/


    2013年1月30日 上午 02:20
  • 在此先謝謝大家的回答!!我花點時間吸收一下有問題在來發問!!感恩!!

    2013年1月30日 上午 04:05