1

ソリューションをビルドするたびにコンパイルが成功するという問題がありますが、プログラムを実行するとエラーが発生します。これは、フォームの designer.cs ファイルにカスタム コンボボックスのデータ ソースが自動的に追加されているためです。その結果、例外が発生します

DataSource プロパティが設定されている場合、Items コレクションは変更できません。

何が問題なのかについてのアイデアはありますか? 初期化コンポーネント メソッドの後にデータ ソースを設定しようとしましたが、ユニット タイプが null であるため、別のエラーが発生します。

データ ソースのタイプはコントロールのプロパティで設定され、以下は関連するコードです。

form.Designer.cs (これは、デザイナーと呼ばれるカスタム cs ファイルではなく、生成されます)

// 
// cmbWheelUnitCR
// 
this.cmbWheelUnitCR.DataSource = ((object)(resources.GetObject("cmbWheelUnitCR.DataSource")));
this.cmbWheelUnitCR.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbWheelUnitCR.FormattingEnabled = true;
this.cmbWheelUnitCR.Items.AddRange(new object[] {
"mm",
"yd"});

私のカスタムコンボボックス

public string UnitType
{
   get { return m_unitType; }
   set { m_unitType = value;
   this.DataSource = Units.Instance.UnitTypes(m_unitType);}
}
public UnitComboBox()
{
   InitializeComponent();
}
4

1 に答える 1

2

オーバーライド onLoad イベント内でデータ ソースを設定することで、これを誤って解決することができました。

于 2012-12-13T13:44:32.823 に答える