環境:Windows XP,VS 2005 SP1,.NET FX 2.0 SP1
問題:
引發類型為“System.ComponentModel.Design.ExceptionCollection”的異常
設計器載入程式未提供根組件,但沒有指出原因。
描述:
添加了WinForm 程式中添加了DataGridView,做了列替換操作(列中動態綁定枚舉對象),這個列替換操作在後台CS代碼中,
不是在Designer.cs 中。
解決辦法:
把自動產生的DataGridView列和要替換的列產生方法封裝在一個方法中,例如:Code
public void InitGridView()
{
DataGridViewTextBoxColumn downloadTimeDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn();
// 其他列
DataGridViewComboBoxColumn downloadTypeDataGridViewTextBoxColumn = DataLoglist.CreateComboBoxLogType();
dataGridView1.Columns.Clear();
dataGridView1.AutoGenerateColumns = false;
//
// downloadTimeDataGridViewTextBoxColumn
//
downloadTimeDataGridViewTextBoxColumn.DataPropertyName = "DownloadTime";
downloadTimeDataGridViewTextBoxColumn.HeaderText = "下發時間";
downloadTimeDataGridViewTextBoxColumn.Name = "downloadTimeDataGridViewTextBoxColumn";
downloadTimeDataGridViewTextBoxColumn.ReadOnly = true;
//
// downloadTypeDataGridViewTextBoxColumn
//
downloadTypeDataGridViewTextBoxColumn.DataPropertyName = "DownloadType";
downloadTypeDataGridViewTextBoxColumn.HeaderText = "下發類型";
this.dataGridView1.Columns.AddRange(new DataGridViewColumn[] {
downloadTimeDataGridViewTextBoxColumn,
deviceIPDataGridViewTextBoxColumn,
deviceNameDataGridViewTextBoxColumn,
inOutDataGridViewTextBoxColumn,
workerNameDataGridViewTextBoxColumn,
iDCardDataGridViewTextBoxColumn,
workerFingerIdDataGridViewTextBoxColumn,
downloadTypeDataGridViewTextBoxColumn,
downloadResultDataGridViewTextBoxColumn,
memoDataGridViewTextBoxColumn});
}
此方法在構造中調用,例如: public ShowWokerInfo()
{
InitializeComponent();
InitGridView();
}
這樣,上面的錯誤自然消失,設計時正常了。
態度決定一切,技術改變生活
作者:winzheng
出處:http://cnblogs.com/winzheng
本文為原創作品,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利。