複数フォームのデザイン

タグの編集
投稿者 質問者  () 投稿日時 2008/3/7 03:28:00
フォームの1枚目のデザインを、フォームの2枚目にも反映させたいのですが、何か効率的な方法はありますか。 
 
合計でフォーム5つのアプリケーションを作成中です。デザインがほとんど同じなので、またゼロからフォームごとにコントロールを配置していくのも非効率ですし、何か良い方法はないでしょうか。
投稿者   () 投稿日時 2008/3/7 03:59:00
多少無理やりなやり方の気もしますが・・・ 
 
form2を作成 
   ↓ 
form1とサイズを合わせる 
   ↓ 
form1のデザイン画面で全てのコントロールを 
選択し、コピー 
   ↓ 
form2上に貼り付ける。 
 
もっとスマートなやり方があるかもしれないですが、 
デザインを似せるだけならこれでもできるかと思います。
投稿者 魔界の仮面弁士  () 投稿日時 2008/3/7 04:34:00
ほぼ同じレイアウトなら、コピー & ペーストで作るのも手かと。 
 
あとは、作成を楽にするために、テンプレートとなるフォームを、あらかじめ用意しておくのも良いでしょう。 
http://www.atmarkit.co.jp/fdotnet/dotnettips/537myitemtemplate/myitemtemplate.html 
 
 
このほかには、「継承フォーム」という手法を使って、元のデザインを使いまわす方法もあります。難易度は高くなってしまいますけれども。 
http://msdn2.microsoft.com/ja-jp/library/bx1155fz.aspx
投稿者 質問者  () 投稿日時 2008/3/7 06:12:00
お二人ともサンクスでした。どちらとも私にとってベストアンサーで早速、学んで使わせてもらいます。 
 
それと、あともう一つ聞きたいのですが、たとえばフォーム1からフォーム6まで作っていって、3と5のフォームの順番を入れ替えたいとか、特に知りたいのは、新たに追加するフォームを、フォーム1の前に追加したいとか、反対に削除したいとか、そういうことは可能でしょうか。 
特に、順番を入れ替える場合、既にコードまで書いてしまっているようなら、デザインのみならず中身も一緒についてくるようにするには、どうすればよいのでしょう。
投稿者   () 投稿日時 2008/3/7 07:23:00
>>3 
フォームの順番には特に意味はないように思います。 
 
もし、フォームの名前やコードを変更するだけで 
対処できるのであれば 
ソリューションエクスプローラからフォームの名前を 
変更するか、(コードのほうも自動的に変わるはずです。) 
編集メニューのクイック置換を利用してみては 
どうでしょうか?
投稿者 質問者  () 投稿日時 2008/3/8 05:52:00
役に立つ情報ありがとうございます。ただ一点、皆さんのための報告にもなるかと思うので、私の経験をお伝えすると、フォームの名前を変えても順番は入れ替わらなかったです。同じフォームの名前があるということでエラーになりました。もう少しいじってみますが、今のところはこんな感じです。
投稿者 かさのば  () 投稿日時 2008/3/8 10:03:00
>>5 
>フォームの名前を変えても順番は入れ替わらなかったです。 
>同じフォームの名前があるということでエラーになりました。 
名前が被らないように変更すればいいだけでは? 
Form1、Form2があったとして 
Form1→Form1_ 
Form2→Form1 
Form1_→Form2 
 
ところで、Formを通し番号で管理しようとしてるのは何でなんでしょうか? 
正直分かりにくいと思うのですが。
投稿者 質問者  () 投稿日時 2008/3/9 07:54:00
Formを通し番号にするわけではないのです。ただまあ、なんとなくと言いますか、それぞれに名前を付けても、名前を変更させるとダブり、エラーとなり、という袋小路にいましたので、無意味なように思えたのですね。 
それにしても、お見事だと思います。 
Form1→Form1_  
Form2→Form1  
Form1_→Form2 
こうした順序は正直、まるで思いつきませんでした。両方ともForm1にした段階でエラーとなり、なんだよ、コードも変更にならないし、それどころかエラーじゃん、といった具合でしたから。ワンクッションを置いてForm2に移行することで、目的が果たせるわけなのですね。 
かなり視野が狭かったようです。ナイス過ぎるアドバイスでした。ありがとうございました。