人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual Studio 2008で、VB.NETのWindowsアプリを作成しています。
Buttonクラスを継承した「ButtonEx」コントロールを作成し、フォーム上に設置して初期表示された
ときに自動的に条件に応じてボタンの外観を変えたいです。

ButtonExボタンを配置する際、デザイナでそのボタンの「Tag」プロパティに文字列を設定し、
その文字列に応じて外観を変える、変えないを判別したいです。

ただ、外観を変えるコードをオーバーライドするNewコンストラクタ内で記述しても、まだTagプロパティには
条件となる値が代入されておらず、意味がありません。

ButtonEx内で、どのメソッドをオーバーライドするなどして外観を変えるコードを記述すればよいでしょうか。

●質問者: kyoko55
●カテゴリ:コンピュータ
✍キーワード:tag VB.NET Visual Studio Windows アプリ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● TinqWill
●20ポイント

プロパティを使うのはいかがですか?

http://dobon.net/vb/dotnet/vb6/property.html

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard47.htm

プロパティなら、関数のようにいろいろな設定ができます。デザイナのプロパティのところにも表示されます。

最初から決まったスタイルしかないなら、文字列を指定するより列挙体を使ったほうが間違いがなくなります。

◎質問者からの返答

質問が伝わっていないようなのですが、

外観の変え方ではく、

ButtonExクラス内で、親クラスの「どのメソッド」をオーバーライドしてその中に変えるコードを挿入すればよいでしょうか。

下記のコメントをご覧ください。


2 ● heke2mee
●60ポイント ベストアンサー

形状はそのままで単純な見た目だけ変更するなら

のようにビットマップをセットするだけです。

'ボタンに張り付けるイメージ

Button1.Image = bmp

'表示位置は中央

Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter


ビットマップを使用しない場合や、ボタンの形状を変更するには

Paintのイベントで描画することになります。

また、形状を三角や丸などに変更した場合は、

クリック時やマウスオーバーしたときの

当たり判定なども変える必要があります。


「コントロールの形状を変更する」が参考になると思います。

http://msdn.microsoft.com/ja-jp/library/aa289517%28v=vs.71%29.aspx

◎質問者からの返答

質問が伝わっていないようなのですが、

外観の変え方ではく、

ButtonExクラス内で、親クラスの「どのメソッド」をオーバーライドしてその中に変えるコードを挿入すればよいでしょうか。

下記のコメントをご覧ください。


3 ● ruayarou
●20ポイント

コンストラクタ内ではダメですよ。

親のOnPaint() をオーバーライドしないといけないですね。

http://uchukamen.com/Programming1/StarButton/index.htm

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ