0

私はフォームを作成する必要があります。

BindingList<CustomObject>最初にas のdatagridview がありDataSourceます。

DataSource2 番目は、最初のフォームから追加/削除/更新する必要があります。

これどうやってするの?修正などはbutton_Click(object sender, EventArgs e)、secondform で行われています。コンストラクターに渡すBindignList<>ことはできましたが、それ以上渡すことはできませんrefSecondForms()button_Click()

4

1 に答える 1

1

できることは、form1 がサブスクライブする form2 にイベントを作成することです。物事を別々に保つ。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

   } 
}

上記は機能しませんか?^^

于 2012-09-16T08:55:05.280 に答える