トップ回答者
プロジェクトでForm1のこぴーをとり,これを貼り付けてForm2としたい

質問
回答
-
imszさん
私もよくコピーして作成してます。
簡単なプロジェクトだと、赤○の3点をForm2に修正するだけで、とりあえずエラーは削除できますよ。
すると、画面デザインを表示するとエラー画面になりますので、Form2.Designer.cs を確認して、イベントハンドラなどがForm1で定義されたままかと思いますので、それらのForm1をForm2に修正する必要があります。
まず簡単なプロジェクトで試してみることをお勧めします。
もっと簡単な方法があれば、私も知りたいところです。
- 編集済み kentahoga 2013年4月24日 7:10
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:20
-
> どのようにして,Fom2(Form1のコピー)を追加できるのでしょうか。
複数の方法が考えられます。
1.Form1 のコードをコピーする
「Windows フォームを追加」した後、Form1.cs と Form1.Designer.cs のメンバをコピーします。2.Form1 を継承する
コピーしなくてもデザインやコードを Form2 で利用できます。オブジェクト指向の理解が必要です。3.共通するデザインやコードをユーザーコントロール化する
一番お勧めの方法です。デザインやコードを一極化でき、管理が楽になります。それぞれ一長一短ありますので、色々調べるといいかと思います。
ひらぽん http://d.hatena.ne.jp/hilapon/
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:21
-
私は以下の手順を踏みます。
1.まず、ソリューションエクスプローラーでForm1.csをコピーし、貼り付けます。そうすると「コピー ~ Form1.cs」ができますので、これをForm2.csにリネームします。
2.ソリューションエクスプローラーでForm1.csを右クリックし、「プロジェクトから除外」を行います。
3.Form2.csを開き、
「public partial class Form1 : Form」の、Form1のところで右クリックし、「リファクター」→「名前の変更」で、「新しい名前」にForm2と入力し、「参照の変更のプレビュー」にチェックが入っていることを確認し、OKボタンを押します。
開かれたプレビューを見ると、既にForm1がどこかで記述されている場合は、そこも変更の対象になりますから、必要に応じてそのチェックを外し、変更されないようにします。変更する全ての箇所のみにチェックが付いていることを確認し、適用ボタンを押します。
これで、Visual Studioが必要なところを自働的にForm1からForm2に変えてくれます。
上記2.の手順でForm1をプロジェクトから除外したのは、除外しておかないと元々のForm1までForm2に変更されてしまうからです。4.ソリューションエクスプローラーでForm1.csを右クリックし、「プロジェクトに含める」をクリックします。
ソリューションエクスプローラーに表示されていない場合は、ソリューションエクスプローラーの一番最初にあるアイコンのうち、「すべてのファイルを表示」をクリックして下さい。これで、プロジェクトから除外されているファイルも表示されるようになります。以上です。
#(追記)
情報が足らず、混乱させたようで申し訳ありませんでした。追記をしましたので確認してみて下さい。追記は太字に下線が引かれている部分です。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2013年4月24日 13:44 追記
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:21
-
imszさん、kentaro_さん、私の記述が足らず、混乱させてしまったようで申し訳ありませんでした。
また、どこかでForm1が使われていると、それもそのままではForm2に置換されてしまいますから、「参照の更新のプレビュー」で確認し、変更されてはまずいところは変更されないようにチェックを外す必要があります。
例えば、
var form = new Form1();
と記述されているところが、
var form = new Form2();
に置換されてしまわないように、「参照の更新のプレビュー」でチェックを外し、置換されないようにする必要があります。先の私の発言に追記をしていますので、そちらも確認してみて下さい。
よろしくお願いいたします。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク imsz 2013年4月24日 20:38
すべての返信
-
imszさん
私もよくコピーして作成してます。
簡単なプロジェクトだと、赤○の3点をForm2に修正するだけで、とりあえずエラーは削除できますよ。
すると、画面デザインを表示するとエラー画面になりますので、Form2.Designer.cs を確認して、イベントハンドラなどがForm1で定義されたままかと思いますので、それらのForm1をForm2に修正する必要があります。
まず簡単なプロジェクトで試してみることをお勧めします。
もっと簡単な方法があれば、私も知りたいところです。
- 編集済み kentahoga 2013年4月24日 7:10
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:20
-
> どのようにして,Fom2(Form1のコピー)を追加できるのでしょうか。
複数の方法が考えられます。
1.Form1 のコードをコピーする
「Windows フォームを追加」した後、Form1.cs と Form1.Designer.cs のメンバをコピーします。2.Form1 を継承する
コピーしなくてもデザインやコードを Form2 で利用できます。オブジェクト指向の理解が必要です。3.共通するデザインやコードをユーザーコントロール化する
一番お勧めの方法です。デザインやコードを一極化でき、管理が楽になります。それぞれ一長一短ありますので、色々調べるといいかと思います。
ひらぽん http://d.hatena.ne.jp/hilapon/
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:21
-
私は以下の手順を踏みます。
1.まず、ソリューションエクスプローラーでForm1.csをコピーし、貼り付けます。そうすると「コピー ~ Form1.cs」ができますので、これをForm2.csにリネームします。
2.ソリューションエクスプローラーでForm1.csを右クリックし、「プロジェクトから除外」を行います。
3.Form2.csを開き、
「public partial class Form1 : Form」の、Form1のところで右クリックし、「リファクター」→「名前の変更」で、「新しい名前」にForm2と入力し、「参照の変更のプレビュー」にチェックが入っていることを確認し、OKボタンを押します。
開かれたプレビューを見ると、既にForm1がどこかで記述されている場合は、そこも変更の対象になりますから、必要に応じてそのチェックを外し、変更されないようにします。変更する全ての箇所のみにチェックが付いていることを確認し、適用ボタンを押します。
これで、Visual Studioが必要なところを自働的にForm1からForm2に変えてくれます。
上記2.の手順でForm1をプロジェクトから除外したのは、除外しておかないと元々のForm1までForm2に変更されてしまうからです。4.ソリューションエクスプローラーでForm1.csを右クリックし、「プロジェクトに含める」をクリックします。
ソリューションエクスプローラーに表示されていない場合は、ソリューションエクスプローラーの一番最初にあるアイコンのうち、「すべてのファイルを表示」をクリックして下さい。これで、プロジェクトから除外されているファイルも表示されるようになります。以上です。
#(追記)
情報が足らず、混乱させたようで申し訳ありませんでした。追記をしましたので確認してみて下さい。追記は太字に下線が引かれている部分です。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2013年4月24日 13:44 追記
- 回答としてマーク ひらぽんModerator 2013年6月5日 3:21
-
imszさん、kentaro_さん、私の記述が足らず、混乱させてしまったようで申し訳ありませんでした。
また、どこかでForm1が使われていると、それもそのままではForm2に置換されてしまいますから、「参照の更新のプレビュー」で確認し、変更されてはまずいところは変更されないようにチェックを外す必要があります。
例えば、
var form = new Form1();
と記述されているところが、
var form = new Form2();
に置換されてしまわないように、「参照の更新のプレビュー」でチェックを外し、置換されないようにする必要があります。先の私の発言に追記をしていますので、そちらも確認してみて下さい。
よろしくお願いいたします。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク imsz 2013年4月24日 20:38