windowsフォームでフォーム間で値を渡す方法

WinFormフォーム間で値を渡す方法は次のとおりです。

  1. コンストラクタによる値の受け渡し:ターゲットとなるフォームのコンストラクタにパラメータを追加し、インスタンス作成時に値を渡す。
public class Form2 : Form
{
    private string value;

    public Form2(string value)
    {
        this.value = value;
    }
}

// 创建实例时传入值
var form2 = new Form2("Hello");
form2.Show();
  1. パブリックなプロパティまたはメソッド:値を渡すために、ターゲットフォームでパブリックなプロパティまたはメソッドを定義し、それにアクセスします。
public class Form2 : Form
{
    public string Value { get; set; }

    public void SetValue(string value)
    {
        this.Value = value;
    }
}

// 访问属性或方法传递值
var form2 = new Form2();
form2.Value = "Hello";
form2.Show();
  1. 静的変数:親ウィンドウで静的変数を定義し、他のウィンドウからその静的変数にアクセスして値を取得する。
public class Form1 : Form
{
    public static string Value;
}

// 设置静态变量的值
Form1.Value = "Hello";

// 访问静态变量的值
var value = Form1.Value;
  1. アプリケーション オブジェクト:Application オブジェクトの Properties プロパティを使用して値を渡します。
// 设置值
Application.Properties["Value"] = "Hello";

// 获取值
var value = Application.Properties["Value"].ToString();
  1. イベント引数: 「イベントを元ウィンドウ側で定義し、イベントを先のウィンドウ側で購読し、引数によって値を渡す」
public class Form1 : Form
{
    public event EventHandler<MyEventArgs> ValueChanged;

    private void OnValueChanged(string value)
    {
        ValueChanged?.Invoke(this, new MyEventArgs(value));
    }
}

public class Form2 : Form
{
    public Form2()
    {
        var form1 = new Form1();
        form1.ValueChanged += Form1_ValueChanged;
    }

    private void Form1_ValueChanged(object sender, MyEventArgs e)
    {
        var value = e.Value;
    }
}

public class MyEventArgs : EventArgs
{
    public string Value { get; }

    public MyEventArgs(string value)
    {
        Value = value;
    }
}

用途に応じて適切なメソッドを選択することで、WinFormフォームでの値の受け渡しが一般的におこなわれます。

bannerAds