[問題] 請問一下兩個form之間訊息如何互傳?
看板C_Sharp (C#)作者Ovaltine1015 (尋找我的Tone!!)時間20年前 (2004/09/12 17:20)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章