none
チュートリアル:ピクチャビューに付いて。 RRS feed

  • 質問

  •  初めまして。

     入門で素直にチュートリアル1ピクチャービュアをこなしていたのですが、手順9でテスト実行をする際に、手順7で追加したコモンダイアログが「エラー    1    'PicView.Form1' に 'openFileDialog1_FileOk' の定義が含まれておらず、型 'PicView.Form1' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」とエラー停止するのですが、これはusingでインクルードされていないという意味でしょうか。

    2013年1月4日 15:52

回答

  • 出展がどこかは書きましょうね。
    今回は、MSDN のサイトを見たか、ヘルプを見たかということなんでしょうけれども、それが一言書いてあるだけでも認識のずれがなくなります。(チュートリアル 1: ピクチャ ビューアーの作成

    さて、手順通りにきちんと操作していればそんなエラーは出ません。たぶん操作ミスをして追加されたコードを消したのでは?
    OpenFileDialog をダブルクリックすると、OpenFileDialog の既定のイベントである FileOk イベントハンドラが自動生成されます。これをコードだけ消すと、質問されているエラーが発生します。
    これは、あなたが見えていた 4 行だけではなく、裏で別のところにもコードが追加されているので、勝手にあなたが消したことで、必要とされるイベントハンドラが見つからないという状態になってしまったからです。

    操作を間違えてしまったのであれば、まずは元に戻す(Ctrl+Z)を使うを考えてください。
    (今回の場合、デザイナー、画面を編集するタブ([デザイン] と表示のあるタブ)に切り換えてから、元に戻せばよかったと思います)

    今から直すには、そのデザイナーに切り換えて、openFileDialog1 を選択して、プロパティ のイベントボタン(雷のマークのあるもの)を押して、FileOk イベントに登録されている「openFileDialog1_FileOk」という文字列を消せば、イベントの登録を解除できます。

    余談ですが、エラーをダブルクリックすると、どこでエラーが発生しているかを具体的に見ることができます。
    しかし、InitializeComponent はコメントにも書いてあるように「変更しないでください」という場所なので、上記のようなデザイナーから修正することを説明したわけです。
    今後、エラーが発生したときはエラーをダブルクリックして、どこが問題なのかを考えるようにしましょう。

    2013年1月5日 2:38
    モデレータ

すべての返信

  • > 入門で素直にチュートリアル1ピクチャービュアをこなしていたのですが、
    > 手順9でテスト実行をする際に、手順7で追加したコモンダイアログ

    その「チュートリアル」というのは何なのですか? 掲示板に書いてあること以外は何も知りえない回答者に、手順 7 とか手順 9 とか言って話が通じると思いますか?


    • 編集済み SurferOnWww 2013年1月5日 0:01 誤字訂正
    2013年1月4日 19:22
  • 出展がどこかは書きましょうね。
    今回は、MSDN のサイトを見たか、ヘルプを見たかということなんでしょうけれども、それが一言書いてあるだけでも認識のずれがなくなります。(チュートリアル 1: ピクチャ ビューアーの作成

    さて、手順通りにきちんと操作していればそんなエラーは出ません。たぶん操作ミスをして追加されたコードを消したのでは?
    OpenFileDialog をダブルクリックすると、OpenFileDialog の既定のイベントである FileOk イベントハンドラが自動生成されます。これをコードだけ消すと、質問されているエラーが発生します。
    これは、あなたが見えていた 4 行だけではなく、裏で別のところにもコードが追加されているので、勝手にあなたが消したことで、必要とされるイベントハンドラが見つからないという状態になってしまったからです。

    操作を間違えてしまったのであれば、まずは元に戻す(Ctrl+Z)を使うを考えてください。
    (今回の場合、デザイナー、画面を編集するタブ([デザイン] と表示のあるタブ)に切り換えてから、元に戻せばよかったと思います)

    今から直すには、そのデザイナーに切り換えて、openFileDialog1 を選択して、プロパティ のイベントボタン(雷のマークのあるもの)を押して、FileOk イベントに登録されている「openFileDialog1_FileOk」という文字列を消せば、イベントの登録を解除できます。

    余談ですが、エラーをダブルクリックすると、どこでエラーが発生しているかを具体的に見ることができます。
    しかし、InitializeComponent はコメントにも書いてあるように「変更しないでください」という場所なので、上記のようなデザイナーから修正することを説明したわけです。
    今後、エラーが発生したときはエラーをダブルクリックして、どこが問題なのかを考えるようにしましょう。

    2013年1月5日 2:38
    モデレータ
  •  仰る通りです。

     先を急ぎすぎてしまい、失礼しました。


    2013年1月5日 6:13
  •  出典に付いては、本当に失礼しました。

     OpenFileDialogを2回ダブルクリックしてしまったので一つ削除したのですが・・・ソレなのかな。

     コードに手は付けていないつもりなのですが。

     手順7でダブルクリックしたコモンダイアログを全て削除し、作業をやり直した所、手順9のテスト実行を再現する事が出来ました。 結局裏で追加されたコードと言うのを確認出来ませんでしたが、 とにかく今は「裏でもコードが増えている」と言う認識で先に進んで全体を把握する事に努めたいと思います。

     拙い状況解説に耳を傾けて戴き、ありがとうございました。

    2013年1月5日 6:53
  • 以下のページの問題と同じ原因かもしれません。

    Visual C# 2010 Express Tutorial 'PictureViewer.Form1' does not contain a definition
    http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/41148add-3082-4808-a812-655343e61b63

    Visual Studio のデザイナとウィザードを使って、コードを一行も書かずにアプリケーションを作ることができるのは確かに便利ですが、裏で何が起こっているのか理解してないままだと、問題が起こった際手も足も出せないということになってしまいます。C# の文法など、基本はやはり本などで体系的に勉強してから(しながらでもいいですが)アプリを作成することをお勧めします。

    2013年1月5日 8:53