tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルIntelliSense を利用する summary ?
記事No5274
投稿日: 2007/04/03(Tue) 17:13
投稿者ひでと
はじめまして。VB6は使っていたのですが、VB2005 Expreを勉強中です。

水平トレイクラスを作ろうと思い、種類プロパティを作ろうとしています。
種類プロパティは"鋼板トレイ"と"ラダートレイ"しか受け付けないようにしたいのです。
このとき
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim test As New トレイ.水平トレイ
        test.種類 = ←とタイプすると
    End Sub
End Class

IntelliSenseで候補となる"鋼板トレイ"と"ラダートレイ"が表示されるようにしたいのです。
summary というタグが関係しているようなのですが、使いかたが良くわかりません。
どのようにすればよいのでしょうか?教えていただけないでしょうか。

クラスは 以下のようにつくりました。

Public Class 水平トレイ
    Private 種類Value As Integer
    Private message As String

    Public Property 種類() As String
        Get
            Select Case 種類Value
                Case "鋼板トレイ" : Return 1
                Case "ラダートレイ" : Return 2
                Case Else : Return 0
            End Select
        End Get
        Set(ByVal value As String)
            Try
                Select Case value
                    Case "鋼板トレイ"
                    Case "ラダートレイ"
                    Case Else
                        message = "種類が異なります。"
                        ' Throws a new exception.
                        Throw New System.Exception(message)
                End Select
            Catch ex As System.Exception
                If ex.Message = message Then
                    MsgBox(ex.Message)
                    Exit Property
                End If
            End Try
            Select Case value
                Case "鋼板トレイ" : 種類Value = 1
                Case "ラダートレイ" : 種類Value = 2
            End Select
        End Set
    End Property
End Class

[ツリー表示へ]
タイトルRe: IntelliSense を利用する summary ?
記事No5275
投稿日: 2007/04/03(Tue) 17:33
投稿者よねKEN
列挙型(Enum)について調べてみるといいかもしれません。

[ツリー表示へ]
タイトルRe^2: IntelliSense を利用する summary ?
記事No5276
投稿日: 2007/04/03(Tue) 17:55
投稿者ひでと
> 列挙型(Enum)について調べてみるといいかもしれません。
ありがとうございました。
「列挙体は、基になる型が Char 以外の整数型である名前付き定数です。...」
という解説が見つかりましたが、これと IntelliSenseの利用に関係があるようには思えないの
ですが...?

私の説明不足かも知れないので、概略を説明します。

自分で作ったプロパティを別のソースから利用するときを考えています。
コーディングの時にIntelliSenseで、候補となるものが提示されますが、
ここで 「test.種類 = 」←とタイプすると、
自分で作ったプロパティの引数の候補「鋼板トレイ」と「ラダートレイ」がIntelliSenseの
窓に表示できるようにしたいのです。

[ツリー表示へ]
タイトルRe^3: IntelliSense を利用する summary ?
記事No5278
投稿日: 2007/04/03(Tue) 18:59
投稿者大吉末吉
横から失礼。

> > 列挙型(Enum)について調べてみるといいかもしれません。
> ありがとうございました。
> 「列挙体は、基になる型が Char 以外の整数型である名前付き定数です。...」
> という解説が見つかりましたが、これと IntelliSenseの利用に関係があるようには
> 思えないのですが...?

「Visual Basic 固有の IntelliSense  」
http://msdn2.microsoft.com/ja-jp/library/cxy240ac(VS.80).aspx)
にあるように、

-----------------------------------------------------------
・Enum と Boolean での補完

 ステートメントが列挙型のメンバを参照する場合は、IntelliSense では Enum のメンバを一覧表示します。
-----------------------------------------------------------
ですから、Enum型にしておけば、InteliSenseの対象になりますよ。

#ちなみに、これって、VB6でも同じだったはずです。


例えば、
------------------------------------------------------------
Public Class 水平トレイ
    Private 種類Value As Integer
    Private message As String

    Public Enum e種類
        鋼板トレイ = 1
        ラダートレイ = 2
    End Enum
    Public Property 種類() As e種類
        Get
            Return 種類Value
        End Get
        Set(ByVal value As e種類)
            種類Value = value
        End Set
    End Property
End Class
------------------------------------------------------------

とすると、

> コーディングの時にIntelliSenseで、候補となるものが提示されますが、
> ここで 「test.種類 = 」←とタイプすると、
> 自分で作ったプロパティの引数の候補「鋼板トレイ」と「ラダートレイ」がIntelliSenseの
> 窓に表示できるようにしたいのです。

「水平トレイ.e種類.ラダートレイ」と「水平トレイ.e種類.鋼板トレイ」がInteliSenseで表示され
ます。

[ツリー表示へ]
タイトルRe^4: IntelliSense を利用する summary ?
記事No5280
投稿日: 2007/04/04(Wed) 09:24
投稿者ひでと
ありがとうございます。
>  ステートメントが列挙型のメンバを参照する場合は、IntelliSense では Enum のメンバを一覧表示します。
> -----------------------------------------------------------
> ですから、Enum型にしておけば、InteliSenseの対象になりますよ。
>
> #ちなみに、これって、VB6でも同じだったはずです。
VB6も多くの機能を使いこなしていなかったので、Enum型は使っていませんでした。
どちらかというと Select Caseで無理やりという感じでやっておりましたので、Enum型、参考にさせていただきます。

>
>
> 例えば、
> ------------------------------------------------------------
> Public Class 水平トレイ
>     Private 種類Value As Integer
>     Private message As String
>
>     Public Enum e種類
>         鋼板トレイ = 1
>         ラダートレイ = 2
>     End Enum
>     Public Property 種類() As e種類
>         Get
>             Return 種類Value
>         End Get
>         Set(ByVal value As e種類)
>             種類Value = value
>         End Set
>     End Property
> End Class
> ------------------------------------------------------------
>
> とすると、

> 「水平トレイ.e種類.ラダートレイ」と「水平トレイ.e種類.鋼板トレイ」がInteliSenseで表示され
> ます。
試してみました。
確かに「水平トレイ.e種類.ラダートレイ」のように表示されるのですが、引数の指定としては長すぎて、(「"ラダートレイ"」のように)良くコーディングの最中に現れる形で表示できないでしょうか?

[ツリー表示へ]
タイトルRe^5: IntelliSense を利用する summary ?
記事No5281
投稿日: 2007/04/04(Wed) 10:49
投稿者大吉末吉
> 確かに「水平トレイ.e種類.ラダートレイ」のように表示されるのですが、引数の指定としては長すぎて

Enum宣言をClass定義の外に出せば、例えば、


> > ------------------------------------------------------------
> >     Public Enum e種類
> >         鋼板トレイ = 1
> >         ラダートレイ = 2
> >     End Enum
> >
> > Public Class 水平トレイ
> >     Private 種類Value As Integer
> >     Private message As String
> >
> >     Public Property 種類() As e種類
> >         Get
> >             Return 種類Value
> >         End Get
> >         Set(ByVal value As e種類)
> >             種類Value = value
> >         End Set
> >     End Property
> > End Class
> > ------------------------------------------------------------

の様にすれば、クラス名は指定不要(「e種類.ラダートレイ」となる)になりますが・・・


> (「"ラダートレイ"」のように)良くコーディングの最中に現れる形で表示できないでしょうか?

Enum名無しで出る場合ってありましたっけ?

#例えば、どういうクラスの、どういうプロシージャでそうなりましたっけ?

[ツリー表示へ]
タイトルRe^5: IntelliSense を利用する summary ?
記事No5282
投稿日: 2007/04/04(Wed) 11:03
投稿者ひでと
自己レスです。
検索していて
http://msdn2.microsoft.com/ja-jp/library/s0we08bk(vs.80).aspx
http://msdn2.microsoft.com/ja-jp/library/xzysab5k(VS.80).aspx
http://msdn2.microsoft.com/ja-jp/library/ms172653(VS.80).aspx
を見つけましたが、内容が良く理解できません。
<summary>description</summary>
<value>property-description</value>
を使うように思うのですが、初めてのことでご助言をお願いします。

[ツリー表示へ]
タイトルRe^6: IntelliSense を利用する summary ?
記事No5283
投稿日: 2007/04/04(Wed) 12:01
投稿者大吉末吉
> http://msdn2.microsoft.com/ja-jp/library/s0we08bk(vs.80).aspx
> http://msdn2.microsoft.com/ja-jp/library/xzysab5k(VS.80).aspx
> http://msdn2.microsoft.com/ja-jp/library/ms172653(VS.80).aspx
> を見つけましたが、内容が良く理解できません。

というか・・・何がしたいんです?

> IntelliSenseで候補となる"鋼板トレイ"と"ラダートレイ"が表示されるようにしたいのです。

「候補を出したい」ではないんでしょうか?

#summaryやvalueに「InteliSenseの候補を追加する機能」は無いでしょうね。
#やりたい事と、関係ない機能を調べているのでは・・・


> <summary>description</summary>
> <value>property-description</value>
> を使うように思うのですが、初めてのことでご助言をお願いします。

例えば、
> > ------------------------------------------------------------
> >     Public Enum e種類
> >         ''' <summary>
> >         ''' 鋼板トレイを指定します
> >         ''' </summary>
> >         ''' <remarks></remarks>
> >         鋼板トレイ = 1
> >         ''' <summary>
> >         ''' ラダートレイを指定します
> >         ''' </summary>
> >         ''' <remarks></remarks>
> >         ラダートレイ = 2
> >     End Enum
> > ------------------------------------------------------------

としておけば、InteliSenseで選択中に、各候補にカーソルが合わさったときに、
説明(「鋼板トレイを指定します」や「ラダートレイを指定します」)が出るようになりますが・・・

#<value>は、InteliSenseとは関係ないと思います。

[ツリー表示へ]
タイトルRe^7: IntelliSense を利用する summary ?
記事No5285
投稿日: 2007/04/04(Wed) 14:08
投稿者ひでと
ありがとうございました。
>
> 「候補を出したい」ではないんでしょうか?
>
> #summaryやvalueに「InteliSenseの候補を追加する機能」は無いでしょうね。
> #やりたい事と、関係ない機能を調べているのでは・・・
>
ご指摘のとおりなのがわかりました。

>
> 例えば、
> > > ------------------------------------------------------------
> > >     Public Enum e種類
> > >         ''' <summary>
> > >         ''' 鋼板トレイを指定します
> > >         ''' </summary>
> > >         ''' <remarks></remarks>
> > >         鋼板トレイ = 1
> > >         ''' <summary>
> > >         ''' ラダートレイを指定します
> > >         ''' </summary>
> > >         ''' <remarks></remarks>
> > >         ラダートレイ = 2
> > >     End Enum
> > > ------------------------------------------------------------
>
> としておけば、InteliSenseで選択中に、各候補にカーソルが合わさったときに、
> 説明(「鋼板トレイを指定します」や「ラダートレイを指定します」)が出るようになりますが・・・
>
> #<value>は、InteliSenseとは関係ないと思います。

[ツリー表示へ]
タイトルRe^7: IntelliSense を利用する summary ?
記事No5290
投稿日: 2007/04/05(Thu) 17:44
投稿者ひでと
ありがとうございます。
だんだんと理解してきました。物分りが悪くて申し訳ありません。
呼び出す側に Imports ステートメントを記入して

Imports トレイ.水平トレイ.e種類
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim test As New トレイ.水平トレイ
        test.種類 = ラダートレイ
    End Sub
End Class

のようにすれば、短く呼び出せるのですね。

[ツリー表示へ]
タイトルRe^6: IntelliSense を利用する summary ?
記事No5284
投稿日: 2007/04/04(Wed) 12:01
投稿者Hongliang
お望みの機能はこれでは無いと思いますよ。
これは、例えばメソッドの括弧を入力したときに引数の解説ツールチップがでると思いますが、そういうのを実現するものです。
ピリオドを打ったときに出てくるクラス一覧などのドロップダウンリストを実現するものではありません。
// XML ドキュメントについては、そんなに複雑なものでもないので、VS が生成してくれるコードを参考にすれば大体分かるかと。

Enum も型の一種なので、
種類Value As e種類
という風に列挙型として宣言できます。
この「"e種類"型」の変数を使って例えば
If 種類Value =
とイコールを入力したら、インテリセンスがいい感じにサポートしてくれるはずです。

[ツリー表示へ]
タイトルRe^7: IntelliSense を利用する summary ?
記事No5286
投稿日: 2007/04/04(Wed) 14:11
投稿者ひでと
ありがとうございました。

> お望みの機能はこれでは無いと思いますよ。
> これは、例えばメソッドの括弧を入力したときに引数の解説ツールチップがでると思いますが、そういうのを実現するものです。
> ピリオドを打ったときに出てくるクラス一覧などのドロップダウンリストを実現するものではありません。
了解いたしました。

> // XML ドキュメントについては、そんなに複雑なものでもないので、VS が生成してくれるコードを参考にすれば大体分かるかと。
>
> Enum も型の一種なので、
> 種類Value As e種類
> という風に列挙型として宣言できます。
> この「"e種類"型」の変数を使って例えば
> If 種類Value =
> とイコールを入力したら、インテリセンスがいい感じにサポートしてくれるはずです。
もう少し試してみます。解らない時はまた教えてください。

[ツリー表示へ]