C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 31 を表示中)
■14829 / )  プロパティグリッドにArrayList型の変数を表示するには
□投稿者/ イナフ (4回)-(2008/02/27(Wed) 15:24:07)

分類:[VB.NET/VB2005] 

OS:XP
開発環境:VS2005

いつも拝見させて頂き非常に参考になり助かっております。

現在下記の様なクラスを作成し、プロパティグリッドに表示させておりますが、プロパティグリッドのコレクションエディタを表示し、追加ボタンを押したところ
「型'System.String'にコンストラクタが見つかりませんでした。」と表示されてしまい追加できません。
コレクションエディタにArrayList型の変数をString型で表示し、追加させたいのですが、何が問題なのでしょうか?
どうかどなたかご教授下さい。
「_Layers」にはただの文字列が入りますので、String配列にしても良いのですが…。

Public Class Line

  ''' <summary>所属レイヤ名称</summary>
  Private _Layers As ArrayList

  ''' <summary>所属レイヤー</summary>
  <Editor(GetType(TestCollectionEditor), _
  GetType(System.Drawing.Design.UITypeEditor))> _
  <Category("共通")> _
  <Description("所属レイヤー")> _
  <PropertyDisplayName("所属レイヤー")> _
  Public Property Layers() As ArrayList
    Get
      Return _Layers
    End Get
    Set(ByVal Value As ArrayList)
      _Layers = Value
    End Set
  End Property

End Class

Public Class TestCollectionEditor
  Inherits CollectionEditor

  Public Sub New(ByVal newType As Type)
    MyBase.new(newType)
  End Sub

  Protected Overrides Function CreateNewItemTypes() As Type()
    Dim types() As Type = {GetType(String)}
    Return types
  End Function

  Protected Overrides Function CanSelectMultipleInstances() As Boolean
    Return False
  End Function

  Protected Overrides Function CreateCollectionItemType() As Type
    Return GetType(String)
  End Function

End Class

返信 編集キー/


管理者用

- Child Tree -