我有两种窗体(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? –