winform自定義組件創建失敗——未將對象設置引用到實例

自定義了一個組件,從工具箱中拖動時報錯:創建組件xxx失敗……未將對象設置引用到實例。

到designer.cs文件中一看,其中只有單單的申明語句:private AirOne.GUI.Main_Form.UC_PicBoxTest uC_PicBoxTest1;

並沒有實例化和其他的相關設置。

於是在designer.cs中手動添加:

1,實例化:this.uC_PicBoxTest1 = new AirOne.GUI.Main_Form.UC_PicBoxTest();

2,該控件的一些相關設置:

            //
            // uC_PicBoxTest1
            //
            this.uC_PicBoxTest1.BackColor = System.Drawing.Color.Transparent;
            this.uC_PicBoxTest1.Location = new System.Drawing.Point(4, 4);
            this.uC_PicBoxTest1.Name = "uC_PicBoxTest1";
            this.uC_PicBoxTest1.Size = new System.Drawing.Size(764, 451);
            this.uC_PicBoxTest1.TabIndex = 0;

3,由於項目中該控件是由一個選項卡tpImgTest觸發,還要添加:

            this.tpImgTest.Controls.Add(this.uC_PicBoxTest1);

OK,問題解決了。至於爲什麼不能自動添加該控件,還在疑惑中?求解。



4,網上找到的其他的錯誤原因:

錯誤:System.NullReferenceException: 未將對象引用設置到對象的實例

第一種:重複定義造成未將對象引用設置到對象的實例錯誤

一般在C#中造成“未將對象引用設置到對象的實例”錯誤都是控件名稱與codebehind裏面的沒有對應,對於初學編程的人,而在編碼中重複定義也會造成這種問題的產生。

第二種:空對象引用導致錯誤    

1。控件不存在。(可加入判斷是否爲null來解決)

2。執行權限不夠。加ASPNET和EVETRYONE所有權限。

1、ViewState 對象爲Unll。

2、DateSet 空。

3、sql語句或Datebase的原因導致DataReader空。

4、聲明字符串變量時未賦空值就應用變量。

5、未用new初始化對象。

6、Session對象爲空。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章