使用委託和事件在Windows 窗體之間傳遞變數
在這種情況下,您有一個主窗體和一個在「設定」子窗體表單中,將變數傳遞給子表單的常見方法是透過使用委託和
第1 步:初始化委託和事件
在主窗體中,建立一個委託和事件來處理資料傳輸:
public partial class MainForm : Form { /// <summary> /// Delegate to send data between forms /// </summary> public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); /// <summary> /// Event of the delegate /// </summary> public event PageInfoHandler PageInfoRetrieved; }
第2步:在事件中傳遞變數處理程序
當您點選主窗體上的「設定」按鈕時,使用要傳遞的變數建立事件參數實例並引發事件:
private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); }
第 3步驟:擷取子表單中的變數
在「設定」表單中,處理透過重寫對應的事件處理程序來處理事件:
public partial class SettingsForm : Form { protected override void OnShown(EventArgs e) { base.OnShown(e); // Retrieve the event arguments PageInfoEventArgs args = this.Tag as PageInfoEventArgs; if (args != null) { // Access the passed variable string receivedText = args.PageInfo; } } }
使用建構子傳遞變數
或者,您也可以將變數直接傳遞給子層級的建構函式form:
public partial class SettingsForm : Form { private string receivedText; public SettingsForm(string text) { this.receivedText = text; } }
在這種情況下,您將使用該變數建立子表單實例作為參數:
SettingsForm settingsForm = new SettingsForm(SomeString);
以上是如何使用委託與事件或建構函式在 Windows 窗體之間傳遞變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!