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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.87857 の関連記事表示

<< 0 >>
■87857  カスタムコントロールに関する質問
□投稿者/ www -(2018/07/08(Sun) 09:43:26)

    分類:[.NET 全般] 

    VB2017を使っています。

    例えば、TextBoxのプロパティーのImeModeを見ると
    Disable
    On
    Off
    など決められたパラメーターしか使用できないようになっています。

    自分で作ったカスタムコントロールにもこういうプロパティーを使用したいのですが
    どのようにすれば良いですか?




    Structure sss
    Property afd As Integer
    End Structure



    Private _FFF As sss

    Public Property FFF() As sss
    Get
    Return Me._FFF
    End Get
    Set(value As sss)
    Me._FFF = value
    End Set
    End Property


    のようにして、
    宣言して使用していますが、
    StructureやEnumなどを使えば良いのかと思って試してみたのですが
    うまくいきませんでした。




    あと、自分で作製したカスタムコントロールのプロパティが
    全て「その他」に分類されてしまいますが、
    「表示」の欄に表示されるようにするにはどうしたら良いですか?


親記事 /過去ログ151より / 関連記事表示
削除チェック/

■87859  Re[1]: カスタムコントロールに関する質問
□投稿者/ WebSurfer -(2018/07/08(Sun) 10:22:17)
    No87857 (www さん) に返信

    何を作っているのでしょう? Windows Forms? WPF? ASP.NET Web Forms? ASP.NET MVC? その他?
    それによって話が変わってくると思うのですが。

    あと、あなたの開発環境を書けませんか? OS, .NET のバージョン、Web アプリならサーバーと
    ブラウザは何かなど。それによって話が違ってくることがあります。特に .NET のバージョン。
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87858  Re[1]: カスタムコントロールに関する質問
□投稿者/ Hongliang -(2018/07/08(Sun) 10:14:47)
    「うまくいきませんでした」ではなく、どうなったかを書きましょう。
    
    そのプロパティがEnumで事足りるのであれば、Enumを使うだけで十分です。
    
    Public Class CustomControl1
        Public Property Type As CustomType
    End Public
    
    Public Enum CustomType
        Hoge
        Fuga
        Piyo
    End Enum
    
    > あと、自分で作製したカスタムコントロールのプロパティが
    > 全て「その他」に分類されてしまいますが、
    > 「表示」の欄に表示されるようにするにはどうしたら良いですか?
    
    上記コードで言う所のTypeプロパティに、
    System.ComponentModel.CategoryAttribute属性でAppearanceを指定します。
    https://msdn.microsoft.com/ja-jp/library/system.componentmodel.categoryattribute.aspx
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87860  Re[2]: カスタムコントロールに関する質問
□投稿者/ www -(2018/07/08(Sun) 11:04:33)
    Windows Forms
    Windows10
    VB.NET2017
    です
    
    Enumでの方法とapperaranceの方法うまくいきました
    ありがとうございます。
    
    
    Enumの方法だと、整数値しかもたせることしかできないので
    StructureやClassを使いたいと考えています。
    
    
    
    
    
    Public Structure sss
        Property afd As String
    End Structure
    
    
    Public Class CustomControl1
    
        Private _FFF As sss
    
        Public Property FFF() As sss
            Get
                Return Me._FFF
            End Get
            Set(value As sss)
                Me._FFF = value
            End Set
        End Property
    
    
    End Public
    
    とすると、コントロールのプロパティ上に、
    FFFという項目が表れます。
    しかし、WindowsApplication1.sss
    と表示されたままグレー色になっており、
    数値を変更できないようになっています。
    
    
    
    あと、ところで気づいたのですが
    
    今まで、
    
        Private _Type As CustomType
    
        Public Property Type As CustomType
            Get
                Return Me._Type
            End Get
            Set(value As CustomType)
                Me._Type = value
            End Set
    
        End Property
    というような書き方をしていたのですが
    
        Public Property Type As CustomType
    
    でもうまくいくことに気がつきました。
    GetやSetを明示的に書くメリットは何なのでしょうか?
    
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87861  Re[3]: カスタムコントロールに関する質問
□投稿者/ WebSurfer -(2018/07/08(Sun) 11:38:25)
    No87860 (www さん) に返信

    本題の方は解決したようですが・・・

    > GetやSetを明示的に書くメリットは何なのでしょうか?

    開発者が意図した規則に基づいてフィールドを正しく使用できるよう保証するということだと思います。
    例えば意図しない値を設定しようとした場合は例外をスローすることもできます。
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87862  Re[3]: カスタムコントロールに関する質問
□投稿者/ WebSurfer -(2018/07/08(Sun) 11:54:16)
    No87860 (www さん) に返信

    【追伸】

    ASP.NET Web Forms アプリのカスタムコントロールの場合ですが、以下の記事の例のように、
    Visual Studio 上での開発中(実行時ではない)にプロパティウィンドウで値を設定してい
    るときに例外をスローして設定ミスを知らせるということもできます

    Web Custom Control の例外処置
    http://surferonwww.info/BlogEngine/post/2010/08/06/Exception-handling-by-web-custom-control.aspx

    Windows Forms アプリでも同様なことは可能だと思います。(未検証・未確認ですが)
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87863  Re[4]: カスタムコントロールに関する質問
□投稿者/ www -(2018/07/08(Sun) 13:43:06)
    ありがとうございます。

    ちなみに


    Public Property Type As CustomType


    のようにして明示的に書かなかった場合
    デフォルト値はどのようにして記述すれば良いですか?
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87864  Re[5]: カスタムコントロールに関する質問
□投稿者/ www -(2018/07/08(Sun) 13:45:46)

    Public Property Type As CustomType = Type.Hoge

    だとうまくいかないのですが
    どのようにすれば良いですか?
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87865  Re[6]: カスタムコントロールに関する質問
□投稿者/ www -(2018/07/08(Sun) 13:47:25)

    Public Property Type As CustomType = CustomType.Hoge

    でうまくいきました
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87866  Re[5]: カスタムコントロールに関する質問
□投稿者/ WebSurfer -(2018/07/08(Sun) 14:57:16)
    No87863 (www さん) に返信

    すでに答えは調べて分かったようですので今さらながらのレスですが・・・

    > デフォルト値はどのようにして記述すれば良いですか?

    以下の記事が参考になると思います。

    連載! とことん VB: 第 13 回 自動実装プロパティの役割と、そこから読み取れるプロパティの用途
    https://code.msdn.microsoft.com/windowsdesktop/13-4ee47d39

    他にも、「vb.net」「自動実装プロパティ」などをキーワードにググるといろいろヒットしますので
    ご自分でもやってみてください。
記事No.87857 のレス /過去ログ151より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -