
フォーム間でフォーム コントロールにアクセスする
問題:
複数のフォームがあるため、あるフォーム内の特定のコントロール (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 サイトの他の関連記事を参照してください。