作者TameFoxx (foxx)
看板C_Sharp
标题Re: [问题] 在别的 class 读写 form 上的 text
时间Wed Sep 30 15:43:41 2015
主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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1443599023.A.835.html
※ 编辑: TameFoxx (125.227.239.229), 09/30/2015 15:54:26