溫馨提示×

winform兩個窗體傳值的方法是什么

小億
134
2023-12-08 14:19:52
欄目: 智能運維

可以通過以下幾種方法實現Winform兩個窗體之間傳值:

  1. 構造函數傳值:在目標窗體的構造函數中添加參數,通過創建目標窗體時傳遞參數的方式進行值的傳遞。
public partial class Form2 : Form
{
    private string data;
    public Form2(string data)
    {
        InitializeComponent();
        this.data = data;
    }
}

在調用目標窗體的地方,傳遞值給目標窗體的構造函數。

Form2 form2 = new Form2("傳遞的值");
form2.Show();
  1. 公共屬性傳值:在目標窗體中定義公共屬性,通過設置屬性值的方式進行值的傳遞。
public partial class Form2 : Form
{
    public string Data { get; set; }
}

在調用目標窗體的地方,設置目標窗體的屬性值。

Form2 form2 = new Form2();
form2.Data = "傳遞的值";
form2.Show();
  1. 靜態變量傳值:在目標窗體中定義一個靜態變量,通過直接賦值的方式進行值的傳遞。
public partial class Form2 : Form
{
    public static string data;
}

在調用目標窗體的地方,給目標窗體的靜態變量賦值。

Form2.data = "傳遞的值";
Form2 form2 = new Form2();
form2.Show();
  1. 事件傳值:在源窗體中定義一個事件,當目標窗體需要獲取值時,觸發該事件進行傳值。
public partial class Form1 : Form
{
    public event EventHandler<string> ValueChanged;
}

在目標窗體中訂閱該事件,并在事件處理方法中獲取傳遞的值。

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

    private void Form1_ValueChanged(object sender, string e)
    {
        // 獲取傳遞的值
    }
}

在源窗體中觸發該事件并傳遞值。

if (ValueChanged != null)
{
    ValueChanged(this, "傳遞的值");
}

以上是常用的幾種方法,可以根據具體場景選擇適合的方式進行Winform窗體之間的值傳遞。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女