• 締切済み

自分でボタンを作りたいのですが…。

カスタムコントロールを作ろうと思っているのですが、まったく やり方がわからず困っています。 作成したいのはボタンで、標準で用意されているボタンと大きさや 文字を変えたいと思っています。 ソリューションエクスプローラに、追加>ユーザーコントロールと したのですが、サンプルとして用意されていたものがあって、それは アイコンがコンポーネントになっているのです。 ボタンそのものを作る場合、コンポーネントにするのでしょうか? 倣ってコンポーネントを追加してはみましたが、その後どうしたら ボタンになるのかさっぱりわかりません。 ヒントや、参考になるサイト等ありましたら教えていただけないでしょうか?

みんなの回答

回答No.3

まず始めに1つだけ。 >曲解しているフシがあるのですが… 曲解と言うより、明らかに説明不足です。 いきなり詳細を書くのを躊躇われたのかもしれませんが… で、.NETであれば、ボタンのサブクラスを作って、 サイズやフォントのプロパティを固定・変更不可(ReadOnlyにする?)にしてしまえば (やった事はないですが…たぶん出来ますよね)、あとはそのクラスを 使わせればいいと思います。 ユーザコントロールを別途作ってもいいかもしれませんが、参照設定とか 面倒そうですし。 VB6なら、どうしてもというのであればユーザコントロールを作っても いいかもしれませんが、参照も面倒ですし、OCXとして作ったりしたら OCXの配布についても考えなければいけなくなります。 私なら、そんな面倒なことはせずに「仕様を徹底させる」ように すると思いますが…テストしたら一発で分かるわけですし。

ginfix
質問者

お礼

No1さんと書きましたが、表示順を変えていたので、正しくは No2さんへの回答でした。 >曲解と言うより、明らかに説明不足です。 そもそも私が聞きたかったのは、 「ボタンのカスタムコントロールが作りたい」ということで、 回答としては「ソリューションエクスプローラにユーザ コントロールを追加して、ボタンから継承すれば良い」という シンプルなやり取りでまとまるものだと思うんですよね。 >(やった事はないですが…たぶん出来ますよね) 「たぶん出来ますよ」で出来なかったら二度手間じゃないですか。 参照設定なんてクリック数回すりゃ出来るんですから、 ただ、説明不測があるとすれば、環境ですかね。 VB2005でした。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

WEBで「カスタムコントロール VB」でWEB照会したら http://msdn.microsoft.com/ja-jp/library/w2a8y03d(VS.80).aspx ほか沢山出てきます。 >標準で用意されているボタンと大きさや文字を変えたいと思っています。 この件に限れば、大きさやフォント種類文字・サイズはプロパティの指定で変えられるでしょう。VBAでさえWidthとHeight、Fontsize,FontNameで変えられます。 カスタムコントロールと大きく出ておきながら、質問で挙げる例の格差があまりにありすぎるように思いますが。 ただ勉強にカスタムコントロールを作ってみたいだけなのかどうか。 ほんとに見た目+機能で独自のものを作るには、プロ的な世界では無いでしょうか。

ginfix
質問者

お礼

曲解しているフシがあるのですが… >大きさやフォント種類文字・サイズはプロパティの指定で >変えられるでしょう。VBAでさえWidthとHeight、 >Fontsize,FontNameで変えられます。 それは知っていますが、たとえば、画面が20個以上あり、その すべての画面で使うボタンのフォントはMSゴシックのみ。 Heightは11である。とか決まっていて、更に作業者が複数いた場合、 個々に標準のボタンを貼り付けて…プロパティ変更して…などと やっていたら漏れが出る恐れがありますよね。 なので、共通的に「これを使え!」とボタンを用意しておきたいのです。 >カスタムコントロールと大きく出ておきながら、 >質問で挙げる例の格差があまりにありすぎるように思いますが。 で、上記前提のケースでカスタムコントロールとするのは 大袈裟なんでしょうかね? 他に良い方法があるのでしたら、参考までにご教授いただければと 思います。

noname#187541
noname#187541
回答No.1

こんにちは。 大きさや文字(フォント?内容?)くらいであれば、通常のButtonで出来ると思うのですが・・・? 大きさはデザイン画面でフィルハンドルをドラッグすればいくらでも自由に変えられます。 プロパティウィンドウでもSizeプロパティに数値を入力すれば出来ます。(コードからもこのプロパティで出来ます。) 文字(フォント?内容?)もFontやTextプロパティで出来るでしょう。 それともButtonの形を変えるとか?そうであれば 円形のボタンを作成する http://hanatyan.sakura.ne.jp/dotnet/button01.htm#no3 こちらを参考にどうぞ。

ginfix
質問者

お礼

>大きさや文字(フォント?内容?)くらいであれば、 >通常のButtonで出来ると思うのですが・・・? 画面が1つであればいいのですが、No1さんのお礼に書いたような 前提があるので、変更自体は些細ですがカスタムコントロールと したいのです。 他に良い方法があればご教授いただけたらと思います。 ただ、アイコンがコンポーネントになっていた件に関しては、 継承した時点でカスタムコントロールのアイコンが変更される ことがわかりましたので、解決いたしました。

関連するQ&A