質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

2431閲覧

ひとつのFormにPictureBoxを使ってボタンを複数作る場合、以下のうちどちらのほうが良いのでしょうか?

Feca

総合スコア21

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2015/08/18 07:54

ひとつのFormにPictureBoxを使ってボタンを複数作る場合、以下のうちどちらのほうが良いのでしょうか?

1.ひとつのPictureBoxに複数のボタンを描画して、
クリックしたときのマウスの位置からクリックされたボタンの違いを認識する

2.ボタンごとにPictureBoxをつくり、それぞれのPictureBoxに対するクリックで、
クリックされたボタンの違いを認識する

それぞれのメリット・デメリットは
1.のメリット
・メソッド自体の数を減らせる。
1.のデメリット
・どのボタンの動きなのか分かりにくくなる(コメントを書けばよいのかもしれませんが)
・メソッドが長くなる?
2.のメリット
・どのボタンの動きかわかりやすくなる
2.のデメリット
・メソッドが多くなる
(あとメリット・デメリットかはまだわからないけど、描画の時にも負担の違いがありそうだとは感じました。)

と考えているのですが、なにぶん経験が浅いのでわかりません・・・。
ご意見を頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikeyan

2015/08/18 13:00 編集

.
wakuwaku

2015/08/18 13:08

ボタンに画像を表示するのではなく、PictureBoxをボタンの様に使用する理由はありますか?
Feca

2015/08/18 13:54

ボタンに画像を表示することが出来るんですね。しりませんでした・・・。 参考にさせていただきます! 一番の理由は、既存のソースがPctureBoxだったっていうことです・・・。 なるべく既存のソースに近い方法をとりたかったので。
guest

回答1

0

ベストアンサー

ボタンをアニメーションさせるのでしょうか?
四角形の中に描画が収まることがわかっているなら、PictureBoxを別々にするほうがよいでしょう。
逆に、ボタンのクリックできる範囲が四角形でなかったり、ボタンの外にもぼやかす効果を描画したりするなら、
Form全体にPictureBoxを作るほうがよいでしょう。
詳しいことがわかりません。目的や描画の詳細について教えていただけたら、もっと回答できます。

投稿2015/08/18 13:14

ikeyan

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Feca

2015/08/18 14:11

確かに四角形でないなら、PictureBoxの方がいいですね。 form上には、 ・ボタン(PictureBox) ・文字(PictureBox) ・画像(formの3/4を占める)のみです。 他にボタンに影響する動きとしては ・brushのalpha値をつかってフェードイン/アウトをしている(form全体) ・描画は1秒以下で常に行われている ・状況によってボタンの文字や色が変わる と言うところでしょうか。 うまく説明できず申し訳ないです。
ikeyan

2015/08/19 05:30

ボタンの色・文字列を変えるだけなら、Button.{BackColor,Text}ですみます。 ボタンに単一色でない背景をつけるなら、Bitmapなどに描画してButton.BackgroundImageに代入してください。 ボタンには独特の枠がありますが、 button.FlatStyle = FlatStyle.Flat; button.FlatAppearance.BorderSize = 0; とすれば枠はなくなるので、PictureBoxなしに自由な模様のボタンが作れます。 FormにもBackgroundImageプロパティがあるので、 PictureBoxはこの場合全く必要ないようですね。
Feca

2015/08/20 04:06

そうですね、私もButtonのほうが良い気がしました。 詳しい説明をしていただいてありがとうございます。 非常に参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問