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

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

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

No.62541 の関連記事表示

<< 0 >>
■62541  Re[5]: TabControlでTabPageを自動生成しない方法。
□投稿者/ ひらまる -(2011/10/18(Tue) 00:56:25)
    No62540 (Azulean さん) に返信

    > DesignerAttribute で指定されているクラスで実装されています。
    > が、ソースコードは標準で見ることはできません。
    少しわかってきました…今回のTabControlの例だと、
    おそらくTabControlクラスには、TabControlAttributeのようなクラスが属性として設定されており、
    TabControlAttributeが何をしているのかは挙動から把握するしかない。ということでしょうか。

    >これは DLL に含まれているメタデータと呼ばれる、クラスやメソッド、プロパティなどの情報を元に Visual Studio が自動生成しているものであり、ソースコードではありません。
    なるほど。メタデータと呼ぶのですか。ライブラリとして用意されているのですね。
    Javaなどでは標準クラスの中身も見れた気がするので、VBでも見れたら良いなと思っていました。
    RTM・SPバージョンの情報もありがとうございます。

    > この挙動がいやなのなら、TabControl を継承した新たなクラスを作り、そのクラスへ何もしないクラスを指定した DesignerAttribute を付与するとか。
    属性として設定できる、何もしないクラスを作るのに四苦八苦しています。
    おそらく以下のような形だと思うのですが、コメントにもあるように、なにもしないクラスで何をどうやって継承したら良いかがわかりません。
    話の流れ的にSystem.Windows.Forms.Design.ControlDesignerを継承するのが正解だと思うのですが、定義されてないないと言われてしまいます。

    Public Class なにもしないクラス
    'Inherits System.Windows.Forms.Design.ControlDesigner
    '↑定義されていませんと言われる。System.Windows.Forms.Designまでは参照できる。

    'Inherits System.ComponentModel.Design.IDesigner
    '↑何も継承せずにコントロールを配置したところ、
    '『System.InvalidCastException型をSystem.ConponentModel.Design.IDesignerにキャストできません。』
    'と言われたのでSystem.ComponentModel.Design.IDesignerを継承してみたが、
    '『クラスは、他のクラスからのみ継承できます。』 と言われてしまった。
    End Class

    '↓デザイナー属性になにもしないクラスを設定。
    <System.ComponentModel.Designer(GetType(なにもしないクラス))> _
    Public Class カスタムタブコントロール
    Inherits TabControl
    End Class
記事No.62516 のレス /過去ログ105より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -