你可以做的是建立在窗口2注意Form 1將訂閱的事件。保持事物的分離。 我不知道你是如何構建Form1和Form2的,所以我只舉一個例子。
class Form2 : Something
{
public event NotifySubscriberEventHandler NotifySubscriberEvent ;
public void button_Click(object sender, EventArgs e)
{
var handler = NotifySubscriberEvent ;
if(handler != null)
{
handler(this,EventArgs.Empty) ;
}
}
}
class Form1
{
public BindingList<T> MyBindingList {get;set;} //
public void CreateForm2()
{
Form2 form2 = new Form2() ;
form2.NotifySubscriberEvent += OnButtonClicked;
}
public void OnButtonClicked(object source, EventArgs e)
{
//Do Something when notified
MyBindingList.Add(...)
}
}
您將不得不創建一個NotifySubsubscriberEventHandler委託。 這裏: http://www.akadia.com/services/dotnet_delegates_and_events.html#Simple%20Event
但是你已經說你是路過的BindingList成構造我認爲是這樣的:
public class Form2
{
private BindingList<T> bindingList ;
public Form2(BindingList<T> bindingList)
{
this.bindingList = bindingList ;
}
public void button_Click(object sender, EventArgs e)
{
// Do bindingList.Add() or whatever
}
}
難道上面不行? ^^
單獨創建表單還是創建form1創建表單2 –
@LewsTherin是,SecondForm正在FirstForm中創建 – Saint
您是否嘗試在form1中創建Form1將訂閱的事件? –