2012年4月24日 星期二

並未將物件參考設定為物件的執行個體?


某天半夜,(沒錯!很悽慘的半夜!)
當我正在如火如荼的為了明天的 demo 趕程式的時候,
突然跳出了一個錯誤!



CurrentRow 是我在報表底層加的一個屬性,
用來回傳現在列印到哪一個 DataRow ,
結果現在沒辦法寫程式了,因為這個訊息會一直跳出來,
按掉了又馬上跳出來!只能直接用工作管理員把 VS 關掉...慘!
不過半夜趕程式中,腦袋不清不楚的,實在是一時想不出來為什麼會有問題丫!
明明我只寫了這樣




        private DataRow currentRow;
        public DataRow CurrentRow
        {
            get
            {
                DataRowView rv = (DataRowView)this.GetCurrentRow();
                return rv.Row;
            }
            set
            {
                currentRow = value;
            }
        }

在六點半吃完早餐後突然腦袋清醒了一下,
應該是在 design time 的時候程式就會去執行到這一段程式,
但是因為在 design time 的時候的確是還沒有東西可以回傳,
所以才會跳出這樣的錯誤!
然後又突然的想起了一行程式,


if (Site == null || !Site.DesignMode)


所以用這個 if 把程式包起來就可以了!修改如下!


        public DataRow CurrentRow
        {
            get
            {
                if (Site == null || !Site.DesignMode)
                {
                    DataRowView rv = (DataRowView)this.GetCurrentRow();
                    return rv.Row;
                }
                return null;
            }
            set
            {
                currentRow = value;
            }
        }


這樣就可以啦!
錯誤再也沒有跳出來過了!
看來寫底層屬性愛、注、意!

沒有留言:

張貼留言