2017-04-07 10 views
-1

私は時間をかけて別のwinformsを閉じて開く必要があるアプリケーションを開発しています。私は問題に直面しました。どのように変数を渡すことができますか?この場合、初期フォームで開かれたSerialPort?閉じるときにフォームから変数に変数を渡す

フォームは

Application.Run(new Auth()); 
Application.Run(new Main()); 

Auth.csコードはこれを含んでProgram.csの

から開かれています。

SerialPort RCU = new SerialPort(); 
RCU.PortName = textbox.Text; //Port name is get from user input 

そして、私は他の形式の "メイン" で、このポートを使用します。

これを行う可能性はありますか?

おかげ

+0

formclosingイベントで送信できますか? – EpicKip

+0

@EpicKip - this.Close();でフォームを閉じます。 - 。どうすればいい? –

答えて

1

はちょうどあなたのMainコンストラクタでAuthオブジェクトをお願いし、そのためにそれらを初期化します。

Auth auth = new Auth(); 
Main main = new Main(auth); 
Application.Run(auth); 
Application.Run(main); 

次にMainにあなたは、そのオブジェクトを保存し、一度設定プロパティを取得することができます

public Main(Auth auth) 
{ 
    AuthWindow = auth; 
} 

public Auth AuthWindow {get; set;} 

// later.. 
AuthWindow.RCU 

Application.Runの2つの呼び出しは、あなたが使いたい方法ではありませんが、新しいAuthフォームを作成し、メインフォームがロードされた瞬間を表示してください。

+0

これはシンプルな変数で動作しますが、私の場合はSerialPortなので、セキュリティのためにコンパイラがブロックされます。これを修正する可能性はありますか? –

+0

「セキュリティのために_ブロック」_それはどういう意味ですか? –

+0

エラーCS0122:保護レベルが –

関連する問題