none
在Form2如果更新Form1的頁面 RRS feed

  • 問題

  • 想問一下各位大大...
    我今天有兩個Form...
    當我在第一個form1按下新增時跑到form2...
    可是我今天要在form2做連續新增的動作...
    想問一下要怎麼樣我才能...當我新增一筆時就更新Form1的畫面...
    也就是Form1馬上就會有我新增的資料...

    2008年12月4日 上午 12:01

解答

  • VS 2003 哇,好久以前,我不知道有沒有相關的功能.

    但給一些DataBinding 的概念.

     

    FormA,FormB,Form......資料要同步.

    1.Formx要Binding 到同一個DataSource,如 List,BindingList.....

    2.屬性要同步要時做 IPropertyChanging,IPropertyChanged 介面.

    3.要能新/刪要實作ICollectionChanged介面.

     

    我上面的介面名稱,跟Class名稱可能有誤,你要查一下MSDN.因為我都用自動化工具(VS2008)所以沒去背詳細的名稱.

    實作細節請參閱MSDN 的DataBinding 相關文章.

     

    2008年12月4日 上午 12:33
  • 我最後的作法為:

    在Form1的DataSet設為internal....(因為我要更新的是DataSet)

    再要開啟Form2的地方多加個Form2.owner = this....

    而Form2要去更新Form1的地寫新建個Form1(Form1 mf = new Form1())

    而就可以在Form2直接更新From1的DataSet了(DataRow dr = mf.DataSet.table["XXX"].newRow();)

    以上是小妹的實做方法...

    希望可以幫到跟我一樣的新手...

    2008年12月11日 下午 11:56

所有回覆

  • 不好意思...補充一下...

    我用的是VS2003...WinForm...

    2008年12月4日 上午 12:11
  • VS 2003 哇,好久以前,我不知道有沒有相關的功能.

    但給一些DataBinding 的概念.

     

    FormA,FormB,Form......資料要同步.

    1.Formx要Binding 到同一個DataSource,如 List,BindingList.....

    2.屬性要同步要時做 IPropertyChanging,IPropertyChanged 介面.

    3.要能新/刪要實作ICollectionChanged介面.

     

    我上面的介面名稱,跟Class名稱可能有誤,你要查一下MSDN.因為我都用自動化工具(VS2008)所以沒去背詳細的名稱.

    實作細節請參閱MSDN 的DataBinding 相關文章.

     

    2008年12月4日 上午 12:33
  • 我最後的作法為:

    在Form1的DataSet設為internal....(因為我要更新的是DataSet)

    再要開啟Form2的地方多加個Form2.owner = this....

    而Form2要去更新Form1的地寫新建個Form1(Form1 mf = new Form1())

    而就可以在Form2直接更新From1的DataSet了(DataRow dr = mf.DataSet.table["XXX"].newRow();)

    以上是小妹的實做方法...

    希望可以幫到跟我一樣的新手...

    2008年12月11日 下午 11:56