Re: [問題] 在別的 class 讀寫 form 上的 text

看板C_Sharp (C#)作者 (foxx)時間9年前 (2015/09/30 15:43), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
主FORM public Form1() { { InitializeComponent(); _Form1 = this; _Form1指向現在這個被實作出來的Form } 宣告一個靜態Form1 _Form1 public static Form1 _Form1; private void Form1_MouseDoubleClick(object sender, MouseEventArgs e) { class1 cls = new class1(); } public void MainSysLogRecord(string sMsg) { txtSysLog.AppendText(sMsg+"\r\n"); } } 別的Class class class1 { public class1() { Form1._Form1.MainSysLogRecord("產生一個物件"); 取得Form1類別中的靜態成員_Form1 而_Form1目前是指向當前被建置出來的form } } 類別中靜態成員的所有人為此類別 類別只有一個 所以靜態成員只有一個 此_Form1存取指向被實例化之form的地址 之後再其他地方使用此靜態成員時就能得到指向form的地址並使用它 -------------------------------------------------------------------- 要達到這種目的還有其他類似的方法 1.將form上面RichTextBox的參考丟給class1 private void Form1_MouseDoubleClick(object sender, MouseEventArgs e) { class1 cls = new class1(txtSysLog); } class class1 { public class1(RichTextBox rtb) { rtb.AppendText("產生一個物件"); } } 2.使用事件 private void Form1_MouseDoubleClick(object sender, MouseEventArgs e) { class1 cls = new class1(); cls.act+=MainSysLogRecord; } class class1 { public Action<string> act; public class() { act.Invoke("產生一個物件"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.239.229 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1443599023.A.835.html ※ 編輯: TameFoxx (125.227.239.229), 09/30/2015 15:54:26
文章代碼(AID): #1M2vAlWr (C_Sharp)
文章代碼(AID): #1M2vAlWr (C_Sharp)