- PR -

VB.NET2003 プロパティの作成方法

投稿者投稿内容
yamayama
ベテラン
会議室デビュー日: 2006/02/10
投稿数: 68
投稿日時: 2006-03-06 23:22
VB.NET2003 プロパティの作成方法

いつもお世話になります。
vb.net2003でコントロールを作成しオリジナルプロパティを作成したいと思うのですが、

Private myStrings() As String

Public Property AAA(ByVal index As Integer) As String
Get
Return myStrings(index)
End Get
Set(ByVal Value As String)
myStrings(index) = Value
End Set
End Property

上記のように記述した場合
コントロールのプロパティ値が表示されません。

理由が分からないのですが、
どなたか分かる方がいましたら、ご教示ください。
お願いします。


かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-03-07 00:36
引用:

yamayamaさんの書き込み (2006-03-06 23:22) より:

上記のように記述した場合
コントロールのプロパティ値が表示されません。




これはVisualStudioのプロパティウインドウで値が表示されない、
ということを言っていますか?
だとしたらここが参考になると思います
http://dobon.net/vb/dotnet/control/propertygrid.html#show
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 01:13
System.String なんですし、どうせならば、
System.Collections.Specialized.StringCollection を使われてはいかがでしょうか?

コレクション エディタが使えるようになります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
yamayama
ベテラン
会議室デビュー日: 2006/02/10
投稿数: 68
投稿日時: 2006-03-07 10:23
早速のお返事ありがとうございます。

System.Collections.Specialized.StringCollection の使用方法について
調べてみたのですが、
使用方法がよくわかりません。

実際の使用方法についての関連サイト等あれば教えてほしいのですが?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 10:58
引用:

yamayamaさんの書き込み (2006-03-07 10:23) より:

System.Collections.Specialized.StringCollection の使用方法について調べてみたのですが、使用方法がよくわかりません。
実際の使用方法についての関連サイト等あれば教えてほしいのですが?


すいません、String[] だけで「文字列コレクション エディタ」なら使えましたね。
たとえば、こんなのでも使えてしまいます。

コード:

    Private _Strings As String() = New String() {}

    Public Property Strings() As String()
        Get
            Return Me._Strings
        End Get

        Set
            Me._Strings = Value
        End Set
    End Property


コレクションを使う場合は StringCollection ではなく独自の型を使う必要があるみたいです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 11:04
本題忘れてました。
上のコードを見るとわかるかと思いますが、

引用:

yamayamaさんの書き込み (2006-03-06 23:22) より:

上記のように記述した場合
コントロールのプロパティ値が表示されません。


これの答えとしては「インスタンス化してないだけじゃないですか?」になります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
yamayama
ベテラン
会議室デビュー日: 2006/02/10
投稿数: 68
投稿日時: 2006-03-07 15:17
じゃんぬねっとさん(投稿日時: 2006-03-07 10:58)の言われる通り
のコードで実現できました。
ありがとうございました。

今回の場合、文字型の1次元配列でしたが
String,Integerなど2つ以上の型で作成する場合の方法など
ご教授願いたいのですが?

よろしくお願いします。


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 15:28
引用:

yamayamaさんの書き込み (2006-03-07 15:17) より:

今回の場合、文字型の1次元配列でしたが
String,Integerなど2つ以上の型で作成する場合の方法などご教授願いたいのですが?


これこそ、独自の型のコレクションを使うことになると思います。
独自の Item (型) とそれを格納する可変リストの Collection クラスを作成します。
実装したいクラスのプロパティにこの Collection を定義することで可能です。

DesignerSerializationVisibility 属性なども必要になると思います。

わからなければ、また聞いてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)