我有兩種窗體(Form1和Form2),我希望在Form1上的一個過程完成後傳遞一串字符。使用自定義事件處理程序在窗體之間傳遞數據
在Form1上,有一個文本框,我想用此字符串進行更新。在Form2上,我有一個列表框,其中包含最終將在完成每個過程之後加載到Form1上的此文本框中的值。基本上我試圖做的是排列下一個將放置在Form1上的文本框中的字符串。
我曾嘗試在Form 2上創建一個公共屬性,如下圖所示:
public string NextString { get { return ListBox1.Items[ListBox1.TopIndex].ToString(); } }
然後,在Form1中:
Form2 frm = new Form2();
string next = frm.NextString;
TextBox1.Text = next;
而且急。除外。不幸的是,這並不適合我。我做了一些研究,看到這種方法並不是最好的做法,並且認爲使用事件處理程序是更實用的方法。所以我研究了這些。我知道我必須創建一個新的EventArgs類,一個新的公共事件,一個觸發方法,我想如何處理該事件,然後創建Form1中的處理程序方法。 This post is where I read into that.
我打得四處操縱回答適合我的需要:
public class StringEventArgs : EventArgs
{
public string NextString { get; set; }
public StringEventArgs(string data)
{
NextString = data;
}
}
一個新的事件:
public event EventHandler<ListEventArgs> NewFileAdded;
這是我迷路了。我很難理解現在發生了什麼。如果有人能幫我完成我想要做的事,我會非常感激!
你是否在使用MVVM,或者是所有這些都被做代碼隱藏? –
這是代碼隱藏文件 –
什麼時候打開Form2? –