[問題] 請問一下兩個form之間訊息如何互傳?

看板C_Sharp (C#)作者 (尋找我的Tone!!)時間20年前 (2004/09/12 17:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
不好意思,我又來發問了,由於剛接觸windows forms, 所以蠻多介面只會拉而不知其所以然, 所以小弟又來請教各位前輩一些問題了, 現在我有一個主要的form ==> Painter(主要是做繪圖的) 然後我又弄了另一個form ==> TextLayer (這主要是想讓使用管理輸入的文字,有點像photoshop裡面的Layer) ------------------------- 想達到的功能 ---------------------------- 當使用者在Painter按下toolbar其中一個按鈕時, 我就使用TextLayer.Show()叫出視窗, 然後在TextLayer中,當使用者按下一個刪除鈕時, 我必須更新宣告於Painter中儲存文字的ArrayList(稱textArray), 使其textArray少一個字串,並同時呼叫Painter的Invalidate(), 讓整個Painter能繪製最新的畫面...... -------------------------------------------------------------------- 我之前為了能更新那ArrayList,將其宣告為static, 然後直接在TextLayer中某個ButtonClick函式中直接存取Painter.textArray, 但是我卻不知如何通知Painter重會顯示區域.... 所以想請問各位前輩,在兩個form之間互傳訊息時,有沒有什麼其他的方式? 另外,我該如何在ButtonClick函式中通知Painter該重新繪製顯示區域呢? 以下是TextLayer中的函式.... private void btn_DelText_Click(object sender, System.EventArgs e) { this.Close(); if(TextList.SelectedIndex>=0) PainterPro.DeleteText(TextList.SelectedIndex); } 想請問一下那個sender,指得是那個物件? 是TextLayer嗎? 有辦法從這裡access到Painter這個物件嗎? 感謝大家耐心看完,還煩請各位前輩指導了~~~~ 最後還想請問一下各位,這部分是否有哪些不錯的參考書籍或是網站呢? 我覺得我現在只會拉來拉去,卻不知道整個脈絡、概念,感覺有點不踏實, 還請各位前輩多多推薦優良讀物......謝謝大家...... ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.185.47
文章代碼(AID): #11H1J9sr (C_Sharp)
文章代碼(AID): #11H1J9sr (C_Sharp)