次の方法で共有


手順 8: ボタンのイベント ハンドラーのコードの記述

この手順では、[Show a picture] ボタンの機能を次のように設定します。

  • ユーザーがボタンをクリックすると [ファイルを開く] ダイアログ ボックスが開く。

  • ユーザーがピクチャ ファイルを選択するとそのピクチャが PictureBox に表示される。

IDE には、コードの記述に役立つ IntelliSense と呼ばれる強力なツールが備わっています。コードを入力する際に単語の一部を入力すると、入力に合わせてボックスが開き、入力候補が提示されます。このツールは、ユーザーの次の操作を予測し、ユーザーが一覧から選択した最後の項目に自動的にジャンプします。ユーザーは、上方向キーまたは下方向キーを使用して一覧内を移動したり、文字の入力を続けて選択肢を絞り込んだりすることができます。目的の選択肢が見つかったら、Tab キーを押して選択します。入力候補が不要な場合は無視してもかまいません。

ビデオへのリンクこのトピックのビデオ版については " " を参照してください。

[Show a picture] ボタンのイベント ハンドラーのコードを記述するには

  1. Windows フォーム デザイナーに移動し、[Show a picture] ボタンをダブルクリックします。IDE がすぐにコード デザイナーに切り替わり、前に追加した showButton_Click() メソッド内にカーソルが移動します。

  2. 2 つの中かっこ { } の間の空の行に「i」と入力します (Visual Basic の場合は、Private Sub… と End Sub の間の空の行に入力します)。次の図に示すように、IntelliSense ウィンドウが開きます。

    IntelliSense と Visual C# コード

    Visual C# コードの IntelliSense

  3. IntelliSense ウィンドウで、if という単語が強調表示されます (強調表示されない場合は、小文字で「f」と入力すると強調表示されます)。IntelliSense ウィンドウの横にある黄色のツールヒントに "if ステートメントに対するコード スニペット" と表示されます (Visual Basic の場合も、メッセージは若干異なりますが、ツールヒントにスニペットであることが示されます)。ここではそのスニペットを使用します。Tab キーを押してコードに if を挿入します。次にもう一度 Tab キーを押して if スニペットを使用します (別の場所をクリックして IntelliSense ウィンドウが非表示になった場合は、BackSpace キーで i を削除してから再度入力すると、もう一度 IntelliSense ウィンドウが開きます)。

    Visual C# コード

    Visual C# のコード

  4. 次に、IntelliSense を使用して、[ファイルを開く] ダイアログ ボックスを開くためのコードを入力します。ユーザーが [OK] ボタンをクリックすると、ユーザーが選択したファイルが PictureBox に読み込まれるようにします。コードを入力する手順を次に示します。手順は多くなっていますが、少ないキーストロークで完了できます。

    1. スニペットで選択されている true というテキストから開始します。「op」と入力してそのテキストを上書きします (Visual Basic の場合は、先頭文字が大文字のため、「Op」と入力します)。

    2. IntelliSense ウィンドウが開き、openFileDialog1 が表示されます。Tab キーを押してそのコントロールを選択します (Visual Basic の場合は、先頭文字が大文字のため、OpenFileDialog1 が表示されます。OpenFileDialog1 が選択されていることを確認してください)。

    3. ピリオド (.) を入力します (多くのプログラマはこれをドットと呼んでいます)。openFileDialog1 のすぐ後にドットを入力したため、IntelliSense ウィンドウが開き、OpenFileDialog コンポーネントのプロパティとメソッドがすべて表示されます。これらは、Windows フォーム デザイナーでクリックした場合に [プロパティ] ウィンドウに表示されるプロパティと同じです。また、コンポーネントで実行する処理 (ダイアログ ボックスを開くなど) を指定できるメソッドもあります。

      [!メモ]

      IntelliSense ウィンドウには、プロパティとメソッドの両方が表示されます。表示されている項目が何であるかを確認するには、左にあるアイコンを確認します。各メソッドの横にはブロックの画像が表示され、各プロパティの横には手の画像が表示されます。また、各イベントの横には稲妻のアイコンが表示されます。これらの画像は次のとおりです。

      メソッドのアイコン

      [メソッド] アイコン

      プロパティのアイコン

      プロパティ アイコン

      イベントのアイコン

      [イベント] アイコン

    4. 「ShowDialog」の入力を開始します (IntelliSense では大文字と小文字の区別は重要ではありません)。[ファイルを開く] ダイアログ ボックスを表示するメソッドは ShowDialog() です。ウィンドウで ShowDialog が強調表示されたら、Tab キーを押します。

    5. コントロールまたはコンポーネントでメソッドを使用する ("メソッドを呼び出す" といいます) ときは、かっこを追加する必要があります。そのため、左かっこと右かっこ () を入力します。

      [!メモ]

      メソッドはプログラムの重要な要素であり、このチュートリアルでもメソッドの使用方法を既にいくつか示しました。OpenFileDialog コンポーネントの ShowDialog() メソッドを呼び出したのと同じように、コンポーネントのメソッドを呼び出すと、コンポーネントで実行する処理を指定することができます。また、独自のメソッドを作成してプログラムの処理を指定することもできます。たとえば、現在作成している showButton_Click() というメソッドは、ユーザーがボタンをクリックしたときにダイアログ ボックスとピクチャを開く独自のメソッドです。

    6. Visual C# の場合は、空白文字を追加し、2 つの等号 (==) を追加します。Visual Basic の場合は、空白文字を追加し、1 つの等号 (=) を使用します (Visual C# と Visual Basic で、使用する等値演算子が異なります)。

    7. 空白文字をもう 1 つ追加します。追加すると別の IntelliSense ウィンドウが開きます。「DialogResult」の入力を開始し、Tab キーを押して追加します。

      [!メモ]

      コードを記述してメソッドを呼び出すと、値が返される場合があります。ここでは、OpenFileDialog コンポーネントの ShowDialog() メソッドから DialogResult の値が返されます。DialogResult は、ダイアログ ボックスでの処理を示す特殊な値です。OpenFileDialog コンポーネントではユーザーが [OK] をクリックする場合と [キャンセル] をクリックする場合があるため、ShowDialog() メソッドから DialogResult.OK または DialogResult.Cancel が返されます。

    8. ドットを入力します。DialogResult の値の IntelliSense ウィンドウが開きます。「O」と入力し、Tab キーを押して OK を挿入します。

      [!メモ]

      コードの 1 行目はこれで完了です。Visual C# の場合は、次のようになります。

      if (openFileDialog1.ShowDialog() == DialogResult.OK)

      Visual Basic の場合は、次のようになります。

      If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

    9. 次に、コードをもう 1 行追加します。コードを入力する (またはコピーして貼り付ける) こともできますが、IntelliSense を使用して追加することもできます。IntelliSense の使用に慣れてくると、よりすばやく独自のコードを記述できるようになります。最終的な showButton_Click() メソッドは、次のようになります。

      Private Sub showButton_Click() Handles showButton.Click
      
          If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
              PictureBox1.Load(OpenFileDialog1.FileName)
          End If
      
      End Sub
      
      private void showButton_Click(object sender, EventArgs e)
      {
          if (openFileDialog1.ShowDialog() == DialogResult.OK)
          {
              pictureBox1.Load(openFileDialog1.FileName);  
          }
      }
      

続行または確認するには