• ベストアンサー

【VB 2005】継承したコントロールにプロパティを追加するには?

System.Windows.Forms.Labelを継承して 背景や、フォントを設定することは出来るのですが これをプロパティを使用して個別に設定する方法を探しています。 例えば LabelSizeというプロパティを作成し Small、Mediam、Largeから選択された 値によってコントロールの大きさを変えたいと思っています。 よろしくお願いします。

noname#50030
noname#50030

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんな感じでしょうか? Public Enum eLabelSize   Small   Mediam   Large End Enum Private _labelSize As eLabelSize = LabelSize.Mediam <System.ComponentModel.DefaultValue(eLabelSize.Mediam)> _ Public Property LabelSize() As eLabelSize   Get     Return _labelSize   End Get   Set(ByVal Value As eLabelSize)     Select Case Value       Case eLabelSize.Small         Me.Size = New System.Drawing.Size(50, 20)       Case eLabelSize.Mediam         Me.Size = New System.Drawing.Size(100, 20)       Case eLabelSize.Large         Me.Size = New System.Drawing.Size(150, 20)     End Select     _labelSize = Value   End Set End Property

参考URL:
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/winform_usercontrol/vb.aspx
noname#50030
質問者

お礼

回答ありがとうございます。 PropertyのSet部分に記述する事は 考え付かなかったので助かりました。

関連するQ&A

  • コントロールの継承

    VisualBasic2013を利用してシステム開発を行っております。 DataGridViewを継承したユーザーコントロールを作成しようと考えております。 実装したい事としては ・指定したフォント(MeiryoUI)にしておきたい ・行の色を水色にしておきたい ユーザーコントロールを作成して継承するところまでは 実装できているのですが、上記のようにプロパティの値をセットする 方法が分らず困っておりました。 普通にDataGridViewをフォームに配置する場合は 以下のように指定できておりました。 '/ フォントの指定 Me.DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font("Meiryo UI", 9) '全ての行の背景色を水色にする Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.AliceBlue どなたかご教授頂けますと幸いです。

  • 【VB.NET】カスタムコントロールのプロパティ

    お世話になっております カスタムコントロールのプロパティについて質問です InputManのGcTextBoxを継承したカスタムコントロールを作成しました。 カスタムコントロールにはPublicのプロパティがあり、その中で必要がなくなったプロパティがあるため削除しました。 しかし、削除するとカスタムコントロールを使用しているFormのDesignerファイルで多数のエラーが出ており、見てみると削除したプロパティの設定が残っていました。 designerファイルを一つ一つ開いて消そうと思いましたが、かなり多いため非常に手間がかかります。 そこで相談なんですが、なにか一括、もしくは自動で消す方法等あればご教授願います。 ちなみに環境はVisualStudio2008でコントロールはInputMan for Windows Forms 6.0jを使用しています。

  • カスタムコンポーネントのプロパティ

    いつもお世話になっております。 Java(swing)でカスタムコンポーネントを作成する 勉強をしています。 以下のようなラベルを敬称するコントロールを作成しました。 作成したラベルのプロパティにて fontSizeに0または1または2を入力するとフォントサイズが 変更するようにしましが、 プロパティで0,1,2のように数字を入力するのではなく リスト選択(SMALL,MEDIUM,LARGE)にて選択させるには どのようにしたらよいでしょうか? よろしくお願いします。 public class TestJLabel extends JLabel { public static final int SMALL = 0; public static final int MEDIUM = 1; public static final int LARGE = 2; private int size = SMALL; public int getFontSize() { return this.size; } public void setFontSize(int size) { this.size = size; if (size == SMALL){ this.setFont(new Font("MS ゴシック", Font.PLAIN, 10)); } else if (size == MEDIUM){ this.setFont(new Font("MS ゴシック", Font.PLAIN, 18)); } else { this.setFont(new Font("MS ゴシック", Font.PLAIN, 36)); } } }

  • WebBrowserコントロールを継承するには

    VB.NETで既存のWebBrpwserコントロールを継承して 独自のコントロールを作成せいしたいのですが上手くいきません。 以下、私が実践した手順です。 1.プロジェクトにクラスを追加   →クラス名:CBrowser 2.CBrowserにWebBrowserを継承   →Inherits WebBrowserを記述 3.フォームに既存のWebBrowserを配置 4.Designer.vbを編集   →2箇所のSystem.Windows.Forms.WebBrowserをCBrowserに置き換え このやり方だと、稀にフォームデザイナーがエラーを出してしまいます。 よろしくお願いします。

  • ユーザーコントロールのプロパティについて

    こんにちは、palbanです。 グリッドを使用したユーザーコントロールを作成し そのグリッドに文字が出力されるようプロパティを 作成しました。 そしてそのコントロールの作成したプロパティに コード内で値を設定しても全く文字がでてきません。 プロパティウィンドウで設定すると正常に文字が 出てきます。また、標準でついているプロパティを コード内で使用しても正常に値が入ります。 なんとか作成したプロパティもコード内で使用したい のですが、ご存知の方ご教授願いします。

  • プロパティウィンドウのプロパティを非表示にするには?

    Inherits System.Windows.Forms.Button を継承してサイズや色を設定しています。 デザイナで貼り付けたあとサイズや色のプロパティが 変更できてしまうのですが、このプロパティを 非表示にする事は可能でしょうか? 使用環境はVB 2005です。

  • VB .net コントロールのプロパティ設定方法

    Visual Basic 2010を勉強しています。 フォームに貼り付けたコントロールのプロパティの設定についてですが、 今までは、貼り付けた後にプロパティウインドウで直接いじっていました。 (Text、Font、Imageなど...) ですが、知人が書いたコードを見ていると、コードの中で設定しているようなのです。 プロパティウインドウで設定した方が、視覚的にも確認しながら設定できるのでそうしていたのですが、コード内で設定するのと違いはあるのでしょうか?(パフォーマンスやコードの見やすさなど...) 動的にコントロールを配置したい時や、プロパティを変更したい場合にはコード内で操作しますが、初期設定やラベル等の変更することがないようなコントロールに関しては、どちらでも同じような気がするのですが... 実際に皆さんがどうされているのかも気になり、質問させて頂きました。 以上、何卒よろしくお願いいたします。

  • VB.NET 動的コントロールのインデックス

    VB.NET 2005で動的コントロールを複数作成し、 クリックされた動的コントロールのインデックスを 調べる方法はないでしょうか? 以下の様に動的コントロールLabel01とLabel02が複数並んでいて Label01(3)をクリックした時に、Label02(3)も同時に処理 したいのでインデックスを調べたいのですが方法がわかりません。 [Label01(1)] [Label02(1)] [Label01(2)] [Label02(2)] [Label01(3)] [Label02(3)] [Label01(4)] [Label02(4)] [Label01(5)] [Label02(5)]    :      : [Label01(x)] [Label02(x)] '----------------------------------------------- 'Label01(3)がクリックされたら、Label02(3)も"ok"を表示する Private Sub Lab01_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim lab01 As Label = CType(sender, Label) System.Diagnostics.Debug.WriteLine(lab01.Text & "が押されました。") lab01.Text = "ok" lab02(?).Text = "ok"  '←インデックスがわかりません End Sub '-----------------------------------------------

  • 【VB2005】 実行時に動的にコントロールを作成した後のコントロールへの処理

    こんばんわ、VB5.0を1週間ほどかじって現在2005に乗り換えたばかりのド初心者です。 (用語の使い方などが間違っている可能性があるかもしれません。おかしなところは指摘していただけるとありがたいです) VB5.0を使っていたときはコントロール配列を使って簡単にできた事が2005になってコントロール配列を使えなくなったため行き詰ってしまいました。 内容は、ある操作をすると画面にコントロールが1つずつ追加されていき、そのコントロールのプロパティを他のコントロールから操作できるようにする物です。 検索などで情報を集めて、なんとかコントロールを追加していくことができるようにはなったのですが、プロパティを変更するためにコントロールにアクセスする際にエラーになってしまって困っています。 一つだけコントロールが追加された場合は、問題なくプロパティをいじれるのですが、2つ以上追加した場合に最新のコントロール以外のプロパティをいじろうとするとエラーになってしまうのです。 下に私の作りたいプログラムを簡潔にしたサンプルソースを記述させていただきます。 間違いの指摘やアドバイスをいただければ幸いです。 FormにはAddButtonというボタンが一つだけあります。 Dim Index As Integer Private Buttons() As System.Windows.Forms.Button Private Labels() As System.Windows.Forms.Label Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddButton.Click Index += 1 Me.Buttons = New System.Windows.Forms.Button(Index) {} Me.Labels = New System.Windows.Forms.Label(Index) {} Me.SuspendLayout() Me.Buttons(Index - 1) = New System.Windows.Forms.Button Me.Buttons(Index - 1).Text = Index - 1 Me.Buttons(Index - 1).Size = New Size(30, 30) Me.Buttons(Index - 1).Location = New Point((Index - 1) * 30, 50) Me.Labels(Index - 1) = New System.Windows.Forms.Label Me.Labels(Index - 1).Text = Index - 1 Me.Labels(Index - 1).Size = New Size(30, 30) Me.Labels(Index - 1).Location = New Point((Index - 1) * 30, 100) AddHandler Me.Buttons(Index - 1).Click, _ AddressOf Me.Buttons_Click Me.Controls.AddRange(Me.Buttons) Me.Controls.AddRange(Me.Labels) Me.ResumeLayout(False) End Sub Private Sub Buttons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Labels(sender.text).ForeColor = Color.Red End Sub

  • ユーザーコントロールのプロパティの値の保持

    ユーザーコントロールを作成して、使用しているのですが、独自のプロパティを作成し、実際に配置した複数のコントロールで、各々値を設定しても、プロジェクトを一度閉じてしまうと、その他プロパティの値が保持されません。 何か基本的なことを見落としているような気がするのですが、行き詰ってしまいました。 解る方いらっしゃいましたら、アドバイスお願いいたします。