ホームページ >バックエンド開発 >C++ >C#の2つのWindowsフォーム間で効果的に通信するにはどうすればよいですか?

C#の2つのWindowsフォーム間で効果的に通信するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-02 18:16:12388ブラウズ

How Can I Effectively Communicate Between Two Windows Forms in C#?

C#Windowsフォーム間のデータ転送の合理化

特に、C#アプリケーションの複数のWindowsフォーム間の効率的な通信が重要です。特に、セカンダリフォーム(たとえば、設定ウィンドウ)からメインフォームに戻る場合は重要です。 個々のプロパティを介して多数の設定を管理することは、扱いにくい場合があります。 クリーナーソリューションには、コンストラクターの過負荷が含まれます

このアプローチは、呼び出しフォームの参照をセカンダリフォームのコンストラクターに渡し、データ交換のための直接リンクを作成します。

この手法を実証する例を次に示します

form1(メインフォーム):

が開くと、

、それは独自の参照を渡します。
<code class="language-csharp">public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm = new Form2(this);
        frm.ShowDialog(); // Use ShowDialog to block until Form2 closes
    }

    public string LabelText
    {
        get { return Lbl.Text; }
        set { Lbl.Text = value; }
    }
}</code>

Form1form2(二次形式):Form2

このリファレンス(

)を使用して
<code class="language-csharp">public partial class Form2 : Form
{
    private Form1 mainForm;

    public Form2(Form callingForm)
    {
        mainForm = callingForm as Form1;
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        mainForm.LabelText = txtMessage.Text;
        this.Close(); // Close Form2 after data transfer
    }
}</code>
のプロパティにアクセスして変更し、シームレスなデータ転送を可能にします。 より良い制御フローを得るには、

inForm2inmainFormおよびForm1inShowDialog()の使用に注意してください。これにより、データ転送が完了した後にForm1が閉じられ、予期しない動作が防止されます。 この方法は、C#。

以上がC#の2つのWindowsフォーム間で効果的に通信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。