質問: 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー CS1061 'Form1' に 'Form1_Load' の定義が含まれておらず、型 'Form1' の最初の引数を受け付ける拡張メソッド 'Form1_Load' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。 CalculateApp 156 アクティブ 「Visual C# 2017 パーフェクトマスター」という入門書で勉強している超初心者です。 消費税計算機を作るという項目でformを作り、書籍の通り入力して「実行」したところ「From1.Designer.cs」という自動されたコード中で上記のエラーが出て いったいどうしていいのかわかない状態です。 もとフォーム作成画面にも戻れず何をどう修正していいのか? 使用しているIDEはvisual studio 2017です。 ご教授の程お願いいたします。
回答: VS2017の操作仕様を知らないため、以下はVS2015の仕様による推測です。間違っていたらご容赦を・・・ エラーメッセージから、あなたは次のような操作をしたのだと思います。 (1) Form1.csをデザイナーで編集中、フォームをダブルクリック (2) Form1.csにForm1_Loadメソッド(イベントハンドラー)が自動生成された (3) このメソッドはいらないと思いメソッドを手動で削除した (4) Form1.csをデザイナーで開けなくなった この状況ではForm1.Designer.csにコンパイルエラー(CS1061)があるためデザイナーを開けなくなっています。エラーはメッセージにあるとおり「Form1のイベントハンドラーForm1_LoadがForm1.csに定義されてない」ことによって発生しています。 回復方法: (R1) Error ListからCS1061をダブルクリックする(※3) (R2) Form1.Designer.csのエラーの行が表示されるはず `this.Load += new System.EventHandler(this.Form1_Load);` このような行になっているはずで、`Form1_Load`メソッドがないためエラーを示す赤い波線の下線が表示されているはず。 (R3) この行を削除しソースをセーブする。=>コンパイルエラーがなくなる (R4) ソリューションエクスプローラーからForm1.csをダブルクリックすると今度はデザイナーが表示さる 本来どうすべきだったか: イベントハンドラーを削除したい場合はいきなり(3)をするのはNGで、次の手順で削除します。 (A1) Form1.csをデザイナーで開く(※1) (A2) プロパティー画面で削除したいイベントを探す (A3) そのイベントのハンドラー名を空文字列に置き換える (A4) Form1.csのソースコードを開き(※2)ハンドラーメソッドの定義を削除する ソリューションエクスプローラーからの操作を挙げておきます。(VS2015) ※1: デザイナーで開く =>Form1.csをダブルクリック =>Form1.csを右クリック=>View Desiner ※2: ソースコードを開く =>Form1.csを選びF7 =>Form1.csを右クリック=>View Code ※3: Form1クラスの自動生成ソースを開く =>Form1.Designer.csをダブルクリック このファイルはデザイナーが自動生成するものなので基本的には編集しません、本件のような問題があった場合にのみ直接編集します。