winform窗体数据怎么传递

avatar
作者
猴君
阅读量:0

在WinForms中,有多种方法可以在窗体之间传递数据。以下是一些常见的方法:

  1. 构造函数传递数据:

在目标窗体中创建一个接收数据的构造函数,然后在源窗体中创建目标窗体的实例并传递数据。

目标窗体(TargetForm):

public partial class TargetForm : Form {     private string data;      public TargetForm(string data)     {         InitializeComponent();         this.data = data;     } } 

源窗体(SourceForm):

private void buttonOpenTargetForm_Click(object sender, EventArgs e) {     string dataToPass = "Hello, TargetForm!";     TargetForm targetForm = new TargetForm(dataToPass);     targetForm.Show(); } 
  1. 使用属性传递数据:

在目标窗体中创建一个公共属性,然后在源窗体中设置该属性的值。

目标窗体(TargetForm):

public partial class TargetForm : Form {     public string Data { get; set; }      public TargetForm()     {         InitializeComponent();     } } 

源窗体(SourceForm):

private void buttonOpenTargetForm_Click(object sender, EventArgs e) {     string dataToPass = "Hello, TargetForm!";     TargetForm targetForm = new TargetForm();     targetForm.Data = dataToPass;     targetForm.Show(); } 
  1. 使用事件和委托传递数据:

在源窗体中创建一个事件和委托,当需要传递数据时触发事件。目标窗体订阅此事件并接收数据。

源窗体(SourceForm):

public partial class SourceForm : Form {     public delegate void DataTransferEventHandler(object sender, DataTransferEventArgs e);     public event DataTransferEventHandler DataTransfer;      public SourceForm()     {         InitializeComponent();     }      private void buttonSendData_Click(object sender, EventArgs e)     {         string dataToSend = "Hello, TargetForm!";         DataTransferEventArgs args = new DataTransferEventArgs(dataToSend);         DataTransfer?.Invoke(this, args);     } }  public class DataTransferEventArgs : EventArgs {     public string Data { get; private set; }      public DataTransferEventArgs(string data)     {         Data = data;     } } 

目标窗体(TargetForm):

public partial class TargetForm : Form {     public TargetForm()     {         InitializeComponent();     }      public void SubscribeToDataTransferEvent(SourceForm sourceForm)     {         sourceForm.DataTransfer += OnDataTransfer;     }      private void OnDataTransfer(object sender, DataTransferEventArgs e)     {         string receivedData = e.Data;         // 处理接收到的数据     } } 

在这些示例中,我们展示了如何在WinForms窗体之间传递数据。根据你的需求和应用程序的结构,你可以选择最适合你的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!