ホームページ > バックエンド開発 > C++ > Windows フォーム アプリケーションのフォーム間で変数を渡すにはどうすればよいですか?

Windows フォーム アプリケーションのフォーム間で変数を渡すにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-01 10:28:11
オリジナル
241 人が閲覧しました

How Can I Pass a Variable Between Forms in Windows Forms Applications?

Windows フォームのフォーム間での変数の受け渡し

Windows フォーム アプリケーションでは、デリゲートとイベントを使用してフォーム間でのデータの受け渡しを実現できます。この問題は、1 つのフォームである「子」フォームが「親」フォームから変数にアクセスする必要がある場合に発生します。

これを解決するには、デリゲートを利用して親フォームから子フォームにデータを送信することを検討してください。親フォームで、デリゲートとそのイベント ハンドラーを定義します。子フォームを開くボタンがクリックされたら、変数値を運ぶイベント引数オブジェクトを作成し、イベントを発生させます。

子フォームでは、コンストラクターでイベントをサブスクライブします。イベントが発生すると、イベント引数オブジェクトから変数値を取得します。子フォームのコントロールまたはプロパティを変更して、変数テキストを動的に表示します。

C# のコード例を次に示します。

// Parent Form
public partial class MainForm : Form
{
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
    public event PageInfoHandler PageInfoRetrieved;

    private void toolStripBtnSettings_Click(object sender, EventArgs e)
    {
        PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
        OnPageInfoRetrieved(args);
        SettingsForm settingsForm = new SettingsForm();
        settingsForm.ShowDialog();
    }

    private void OnPageInfoRetrieved(PageInfoEventArgs args)
    {
        if (PageInfoRetrieved != null)
            PageInfoRetrieved(this, args);
    }
}

// Child Form
public partial class SettingsForm : Form
{
    private string m_Data; // Variable to store the passed value

    public SettingsForm()
    {
        InitializeComponent();
        Subscribe to PageInfoRetrieved event
    }

    private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e)
    {
        m_Data = e.Value;
        // Update controls or properties in this form
    }

    public string Data => m_Data; // Expose the variable as a property
}
ログイン後にコピー

以上がWindows フォーム アプリケーションのフォーム間で変数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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