Re: [問題] 在別的 class 讀寫 form 上的 text
主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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章