Re: [問題] 請教兩表單即時傳值問題

看板C_Sharp (C#)作者 (.........)時間9年前 (2015/10/26 23:16), 9年前編輯推噓2(206)
留言8則, 3人參與, 最新討論串3/3 (看更多)
如果 form1 單純跟 form2 互動, 可把 form1 的所有控制項全選, 修改 Modifiers 屬性為 public, 呼叫 form2 時把 form1 傳入, 就可直接存取 form1 所有的控制項。 form1: Form2 frm2 = new Form2(this); frm2.showDialog(); form2: 宣告 global 的 Form1 _Parent = new From1(); 在 init 時,用 _Parent 去接。 之後像要設定 form1 的 textbox1,就是 _Parent.textbox1.text = "Test"; ※ 引述《TameFoxx (foxx)》之銘言: : ※ 引述《flyskycat (貓爪~抓抓抓)》之銘言: : : 各位先進好 : : 我目前在 Windows Form 程式撰寫過程中遇到的問題及架構描述如下: : : 架構 : : 1.程式具備兩個兩個視窗 Form1 主視窗及 Form2 輔助按鈕視窗。 : : 2.Form2 已寫程類別庫供 Form1 使用。 : : 3.當點擊 Form1 的 TextBox 後,會建立 Form2 實體並將視窗顯示出來供使用者點選按 : : 紐,未選到任何 TextBox 則 Form2 消失。點擊 Form1 其他 TextBox 則再次顯示 : : Form2。 : : 4.Form1 具備多個 TextBox,用來接收 Form2 按鈕所按下的值,當 Form2 按一下 "1", : : 則 Form1 的 TextBox 就顯示 1;當 Form2 按下 "2",則 Form1 的 TextBox 就顯示 : : 12,依此類推。當 Form2 按下按鈕,Form1 的 TextBox 就更新其內容。 : : 問題 : : 1.因為我採用的是 Form1 的 TextBox 被 Click 之後,才將 Form2 視窗建立出來。所以 : : 我應該如何讓 Form2 知道 Form1 是哪一個 TextBox 被選擇到? : : 2.因為每輸入一個值,Form1 的 TextBox 就需要馬上更新數值,所以我應該怎麼傳值比 : : 較好呢? : : 因為測試了幾天還是寫不出來,希望各位先進能給我一些概念提示,我再自行找資料測試 : : 真的再寫不好,再將程式碼放上來請各位指導。 : 花點時間回文好了,希望原PO無論有無看懂都回應一下 : 幾個方法 : 1. : Form1有幾個TextBox就寫幾個function : 例 private void TextBox1Input(String input) : { : TextBox1.Text+=input; : } : private void TextBox1_Click(object sender, EventArgs e) : { : Form2 fm2 = new Form2() : fm2.textinput+=TextBox1Input; : } : 然後在Form2上面宣告一個Action叫作textinput : public Action<string> textinput : 當Form2的按鍵按下後 : textinput.Invoke("text"); : 2. : 第二種方法可能會比較適合原po 非常簡單 : 在Form2的建構子上加一個TextBox : 然後Form1要建立Form2的時候將那個TextBox傳給Form2 : Form2就可以直接對那個TextBox作存取 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.247.91 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1445872561.A.AD7.html ※ 編輯: wanderer1412 (1.172.247.91), 10/26/2015 23:18:36

10/28 09:49, , 1F
你宣告_Parent不用讓他= new Form1();
10/28 09:49, 1F

10/28 09:49, , 2F
你只是需要這個全域的參考而已
10/28 09:49, 2F

10/28 09:50, , 3F
= new Form1(); 這段代表要建立一個Form1物件
10/28 09:50, 3F

10/28 09:50, , 4F
但事實上你根本不需要他 所以不必這麼作
10/28 09:50, 4F

10/28 09:50, , 5F
其次 這個方法雖然可行但就比較不適合原PO使用
10/28 09:50, 5F

10/28 09:51, , 6F
因為他要知道是哪個textbox被click
10/28 09:51, 6F

10/28 11:46, , 7F
感謝修正,這是憑以前的印象,的確不用 new ~
10/28 11:46, 7F

10/30 17:15, , 8F
感謝各位前輩指導,已完成此功能
10/30 17:15, 8F
文章代碼(AID): #1MBaEnhN (C_Sharp)
文章代碼(AID): #1MBaEnhN (C_Sharp)