【发布时间】:2017-03-11 22:41:19
【问题描述】:
我有一个主窗体,其功能可以更改主窗体上的文本框的文本,代码如下:
主窗体函数:
public void consoleLog(string message)
{
txtConsoleLog.Text += Environment.NewLine;
txtConsoleLog.Text += message;
txtConsoleLog.SelectionStart = txtConsoleLog.TextLength;
txtConsoleLog.ScrollToCaret();
txtConsoleLog.Refresh();
}
所以现在当我点击这样的按钮时,我会打开一个名为 frm connect 的新表单:
private void connectToolStripMenuItem_Click(object sender, EventArgs e)
{
Form frmConnect = new FrmConnect(this);
frmConnect.Show();
}
这是下面的frmConnect
public partial class FrmConnect : Form
{
private Form mainForm;
public FrmConnect(Form frmMain)
{
this.mainForm = frmMain;
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
FrmMain.Connected = true;
mainForm.consoleLog("Connected");
}
}
因此,当我单击一个按钮时,我想调用该函数,但它说它不包含它的定义,我也试图更改主窗体上的“已连接”变量,该变量仅通过引用 FrmMain 来工作,但我我可以使用 mainForm.Connected = true 做到这一点吗?
如果我将函数更改为公共静态,它将通过引用 FrmMain 来工作,但随后我会在 txtConsoleLog 中遇到错误,因为我无法在非静态方法或类似方法中引用对象,需要任何帮助
【问题讨论】:
标签: c#