none
System.Windows.Forms.ListView.ListViewItemCollection とプロパティブラウザについて RRS feed

  • 質問

  • お世話になっております。

    .NET Framework 2.0 C#でユーザーコントロールを作成しています。

    コントロールにListViewを埋め込み、そのListViewのItemsについて、次のようにユーザーコントロールのプロパティとして公開しました。

    public partial class SamplePanel : UserControl

    ...

    public System.Windows.Forms.ListView.ListViewItemCollection Items { get { return listView1.Items; } }

    一度ビルド後、デザインビューからこのユーザーコントロールをフォームに張り付けて、プロパティブラウザを開いたところ、Items プロパティが項目にありません。

    ためしに、次のようにしてみましたが、やはり項目に現れません(.NET Framework のソースコードを参考にしました)。

    ...(略)...
    
            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor("System.Windows.Forms.Design.ListViewItemCollectionEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b...(略)...a", typeof(System.Drawing.Design.UITypeEditor))]
            [Localizable(true)]
            [MergableProperty(false)]
            [Browsable(true)]
            public System.Windows.Forms.ListView.ListViewItemCollection Items
            {
                get
                {
    ...

    このほかにコードが不足しているとすれば、たとえばどのようなことが考えられるでしょうか?

    それとも、一般ユーザーでは、System.Windows.Forms.ListView.ListViewItemCollection 型のプロパティは、プロパティブラウザ上に乗せることができないようになっているのでしょうか?可能でしたら、標準ListViewのように ListViewItem Collection Editor も利用できるようにしたいのですが...


    2014年9月30日 6:17

回答

  • 恐れ入ります、解決しました。

    該当コントロールをフォームに新しく貼り付けなおしたところ、Items プロパティが一覧に表示されるようになっていました。

    何が原因であったか詳細は不明ですが、ユーザーコントロールのうち何か特定の変更を行った場合にデザインモード上でも反映させるには、フォームへ再度貼り付けるか、それと同等のコード変更(InitializeComponent内?)を行う必要があるようです。

    • 回答としてマーク Always fresh 2014年9月30日 6:23
    2014年9月30日 6:23