フォーム間でフォーム コントロールにアクセスする
問題:
複数のフォームがあるため、あるフォーム内の特定のコントロール (ListBox など) に別のフォームからアクセスして変更します。パブリック セッターを作成するより良いアプローチはありますか?
提案された解決策:
パブリック セッターを作成する代わりにフォーム参照を渡す
セッターの場合は、初期化中にあるフォームの参照を別のフォームに渡すことを検討してください。これにより、中間プロパティを必要とせずにコントロールやプロパティに直接アクセスできます。
コード例:
Form1 は Form2 を初期化し、それ自体への参照を提供します。
public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); frm.Show(); } public string LabelText { get { return Lbl.Text; } set { Lbl.Text = value; } } }
Form2 はへの参照を受け取りますForm1.
public partial class Form2 : Form { private Form1 mainForm = null; public Form2(Form callingForm) { mainForm = callingForm as Form1; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.mainForm.LabelText = txtMessage.Text; } }
コンストラクターを通じて参照を渡すことにより、Form2 は Form1 の LabelText プロパティに直接アクセスして変更できます。
以上が異なる Windows フォーム間でコントロールに効率的にアクセスして変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。