C#初学者 Windows Webフォームでお天気アプリを作る(前編)

C#初学者 Windows Webフォームでお天気アプリを作る(前編)

もくじ

はじめに
完成イメージ
プロジェクトを作成する
コントロールを配置する
イベントハンドラを設置する
イベントハンドラの実装~都道府県の辞書を作成する~
次回後編

はじめに

今回は、C#初学者である筆者が、学習内容の整理と復習の意味も込めWindows Webフォームを使った簡単なアプリケーションを作成していきます。
実際にアプリケーションを作りながらプログラムの仕組みや作り方を理解し、C#の基本的な文法を身に着けることを目的としています。

完成イメージ

作成するのはお天気アプリです。 選択した都道府県の現在の天気情報をウェブからから取得し、天気のアイコンを表示します。

プロジェクトを作成する

使用する環境はVisual Studio2022です。 新しいプロジェクトを作成し、テンプレートは「Windows フォームアプリケーション(.NET Framework)」(C#)を選択、プロジェクト名の入力と保存場所を選択します。

コントロールを配置する

プロジェクトを作成して表示されるFormに、ツールボックスから選んだコントロールをD&Dで配置していきます。

■ComboBox(都道府県を選択するためのコントロール)

プロパティウィンドウで「(Name)」を「areaBox」に変更します。

■PictureBox(天気アイコン(画像)を表示するためのコントロール)

プロパティウィンドウで「(Name)」を「weatherIcon」に変更し、「SizeMode」を「StretchImage」に設定します。
「SizeMode」を「StretchImage」に設定します。

■Label(ユーザーに都道府県を選択させる文言)

プロパティウィンドウの「Text」欄に「都道府県を選択」と入力します。  

これですべてのコントロールが設置できたので一度実行してみます。

イベントハンドラを設置する

ComboBoxで都道府県を選択したときに天気情報を取得するためにComboBoxにイベントハンドラを追加します。
ComboBoxでアイテムが選択されるとSelectedIndexChangedというイベントが発生するので、このイベントにCitySelectedというイベントハンドラを追加します。ComboBoxのプロパティウィンドウのイベントタブで「SelectedIndexChanged」欄に「CitySelected」と入力しEnterを押すと、Form1.csにCitySelectedのイベントハンドラが追加されました。

イベントハンドラの実装~都道府県の辞書を作成する~

続いて、先ほど追加したイベントハンドラの中身を実装します。

今回は、都市コードを送るとその地域の天気情報を返してくれる、というサービスを予定しているので、都道府県名と都市コードの辞書を作りComboBoxに都道府県名を表示するプログラムを書きます。

都道府県の辞書はアプリ起動時の初期値としたいので、InitializeComponentメソッド内にDictionary型のcityNames変数をつくり、都道府県名と都市コードがペアになるデータを追加していきます。
foreach文でcityNames変数の都道府県名をひとつずつ取り出し、ComboBox(変数名areaBox)のItemsプロパティに追加しています。

ここで一度実行してみます。

ComboBoxをクリックすると都道府県名のリストが表示されました。

次回後編

次回、ウェブからデータを取得、解析するイベントハンドラを実装し、最後にアプリケーションの見た目を整えて完成です。