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>
Form1
form2(二次形式):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>のプロパティにアクセスして変更し、シームレスなデータ転送を可能にします。 より良い制御フローを得るには、
inForm2
inmainForm
およびForm1
inShowDialog()
の使用に注意してください。これにより、データ転送が完了した後にForm1
が閉じられ、予期しない動作が防止されます。 この方法は、C#。
以上がC#の2つのWindowsフォーム間で効果的に通信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。