none
類別複製 RRS feed

  • 問題

  • 大大,請問一下,我有三個Form(A,B,C)和一類別(class D),其中再FormB上載入資料顯示再datagridveiw(DGV)後,傳給FormA,透過FormA新增一執行緒執行classD裡方法,並把FormB上的資料丟給classD,但我發現若此時我切至FormC,由於我會做釋放上一表單動作,所以class D再作資料處理時(DGV)會有錯誤,即本來有資料(DGV.Rows.Count不為零),一切換馬上變零,故搜尋網路上方法,利用變數將要釋放前的類別copy起來,參考如網址http://blog.csdn.net/ifooler/archive/2007/05/06/1598452.aspx,但仍同樣會發生此問題,是不是他沒copy至另一變數,我認為是表單釋放動作造成的影響,是因為有試著不做表單釋放,結果是可行的,謝 謝

    2010年4月13日 上午 09:17

解答

  • 類別腹製 ? 你指的應該是執行個體 的複製吧 ?

    如果你的D執行個體是產生在FormA執行個體中,當FormA Disposed, 當然D執行個體也會跟著不見.

    你DataGridView的來源應該是個DataTable的執行個體吧 ? 把DataTable的執行個體複製過去就好了.


    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    • 已標示為解答 冰糖旋風 2010年4月13日 上午 10:18
    2010年4月13日 上午 09:33
    版主

所有回覆

  • 類別腹製 ? 你指的應該是執行個體 的複製吧 ?

    如果你的D執行個體是產生在FormA執行個體中,當FormA Disposed, 當然D執行個體也會跟著不見.

    你DataGridView的來源應該是個DataTable的執行個體吧 ? 把DataTable的執行個體複製過去就好了.


    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    • 已標示為解答 冰糖旋風 2010年4月13日 上午 10:18
    2010年4月13日 上午 09:33
    版主
  • 大大謝謝
    2010年4月13日 上午 10:18
  • Hi,

    您參考那連結後怎摸使用?

    是使用 "return this as object;      //引用同一个对象"?

    該不會是看這段 "return new DrawBase() as object;//深复制"

    然後改成 "return new DataTable() as object;//深复制" ?

    我覺得您要交代一下釋放上一表單動作做了啥?還有所謂傳的資料是何型態?


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年4月13日 上午 11:05