13

設計時に ListView の列ヘッダーを変更すると、デザイナーは実行時に列ヘッダーをシリアル化するコードを生成します。

private void InitializeComponent()
{
    this.listView1 = new System.Windows.Forms.ListView();
    this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
    this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
    this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
        this.columnHeader1,
        this.columnHeader2
    });
}

フォーム デザイナーは、ListView の Columns プロパティの AddRange メソッドの呼び出しに続いて、各列のコンストラクターを呼び出す必要があることをどのように認識しますか? 私が書いている UserControl のような ListView にはこれが必要です。

4

2 に答える 2

6

私が達成したかったのはInitializeComponent、カスタム コンポーネントによって生成されたコードをカスタマイズすることでした。その方法を説明するこのMSDNの記事を見つけました:

.NET Framework ビジュアル デザイナーでのコード生成のカスタマイズ

コンポーネントの を記述し、カスタム初期化コードを記述する のCodeDomSerializerコレクションを生成する必要があるようです。CodeExpression

于 2009-10-16T14:14:49.263 に答える
3

特別な属性を使用して、コード内のプロパティをシリアル化する方法を Visual Studio デザイナーに伝えることができます。例については、 DesignerSerializationVisibilityAttributeの MSDN リファレンスを参照してください。 この一連の記事では、カスタム コントロールの設計時のサポートを拡張するために使用できるさまざまな属性の概要も説明しています。お役に立てれば。

于 2009-10-14T21:06:36.733 に答える