C別のフォームから関数を呼び出すと、コードは以下である:iがメインフォーム上のテキストボックスのthatsのテキストを変更する機能を備えたメインフォームを持っている#
メインフォーム機能:
public void consoleLog(string message)
{
txtConsoleLog.Text += Environment.NewLine;
txtConsoleLog.Text += message;
txtConsoleLog.SelectionStart = txtConsoleLog.TextLength;
txtConsoleLog.ScrollToCaret();
txtConsoleLog.Refresh();
}
の下frmConnectを
private void connectToolStripMenuItem_Click(object sender, EventArgs e)
{
Form frmConnect = new FrmConnect(this);
frmConnect.Show();
}
これは次のとおりです。私はこのようなボタンをクリックしたときに
はだから今、私はFRMと呼ばれる新しいフォームを開く接続
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を参照するだけで動作するメインフォーム上の 'Connected'変数を変更しようとしています私はmainForm.Connected = trueを使ってそれを行うことができますか?
私はパブリック静的に機能を変更する場合、私はそのような非静的メソッドか何かでオブジェクトを参照カントとして、それはFrmMainを参照することで動作しますが、その後、私はtxtConsoleLogとエラーが出るが、任意のヘルプはにappriciatedさ
これは、「this.mainForm = frmMainを実行しようとすると、暗黙的にSystem.windows.Forms.Form型をProject1.FrmMainに変換できません。 –
両方のスポットでタイプを変更してもよろしいですか? –
今や私はそれを持っているし、それは動作します、ありがとう –