ホームページ > バックエンド開発 > C++ > 異なる Windows フォーム間でコントロールに効率的にアクセスして変更するにはどうすればよいですか?

異なる Windows フォーム間でコントロールに効率的にアクセスして変更するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-07 13:26:39
オリジナル
872 人が閲覧しました

How Can I Efficiently Access and Modify Controls Across Different Windows Forms?

フォーム間でフォーム コントロールにアクセスする

問題:

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート