自定義了一個組件,從工具箱中拖動時報錯:創建組件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對象爲空。