0

私は別のフォームを開くMainFormを持っています。今、私が書いた関数を提供するクラスがあります.1つの関数は、メインフォームの参照と開いたフォームの参照を取得し、開いたフォームで関数を呼び出します. MainForm を参照するには this.Parent を使用しますが、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。

*ClientSide はメインフォームです *LogIn はメインフォームで開いたフォームで、メソッド RunListener を呼び出します

class ServicesProvider
{
 public static void RunListener(ClientSide MainForm,LogIn LogForm,System.Net.Sockets.TcpClient Client)
    {
     //Doing my things with the parameters
    }
}

このコードはログインフォームにあります

private void BtLogIn_Click(object sender, EventArgs e)
    {
     Thread Listener = new Thread(delegate()
                 {
                   ServicesProvider.RunListener((ClientSide)this.Parent,this,tcpClient);
                 });
                Listener.Start();
    }

問題は、デバッグするたびにエラーが発生し、コード「(ClinetSide)this.parent」がnullを参照していることを発見したことです。メイン フォームで作業し、いくつかの値を変更するには、メイン フォームを参照する必要があります。

4

2 に答える 2

2

デフォルトでは、フォームは「親」について認識していないため、通知する必要があります。例えば:

LogForm.ShowDialog(parentForm);
于 2013-04-16T18:26:22.780 に答える