※ この記事はニコ生、ツイッチで放送した「プログラム初心者勉強会」の中で学んだ事を書き残したものです。
#1. 次回記事リンク
https://qiita.com/Usyuuu-program-beginner/items/9749cc87c707cedfae6d
#2. やったこと
下のサイトの 1.Geting started ~ 5.イベントまでを学習
#3. 配信時の動画
https://youtu.be/ms43PVmseJU?t=720
チャプター情報は動画コメント参照
#4. 開発環境
VisualStudio2017
#5. 注意
参考にしてるサイトは、デザイナ機能を利用しない為「Form1.cs」を削除しています。
私は「Form1.cs」を活用する方法が学びたかったので、完全にこのサイトに即して学んではいないです。ご容赦
#6. 振り返り
- 1章 Getting started
Windowsフォームを始める際の準備が記載されてました
配信時は.Net Frameworkはどのカテゴリに分類されるのかを話してましたね(フレームワークでいいのかな?)
- 2章 メッセージボックス ~ 5章 イベント まで
GUI画面の作成、ボタン等の配置、並びにイベント付与の方法が記載されていました。
やり方はリンク先に全部書いているので省略。
配信中に為になったなと思った事を次からは書きます。
##6.1 Usingディレクティブ について
ソースコードの先頭で「using ~」と記述しているコードのことです。
各名前空間に定義されたクラスを使用する際、C#では「名前空間.クラス名」と記載する必要があります。
usingディレクティブをファイルの頭で使用することで、名前空間の指定を省略できます。
※ 今回よく使ったusingディレクティブ
- using System.Windows.Forms;
ボタン等をWindowsフォームに配置する際に必要なクラスはほとんどこの名前空間で定義されていました。
今後の章でも活用しそう
##6.2 WIndowsフォームのファイル構造について
Windowsフォーム用のプロジェクトを作成すると、"Form1.cs"や"Program.cs"など、いろんなファイルが自動で作成されます。
それぞれの役割は何か、以下サイトに載ってました
重要なところを以下抜粋
6.2.1各ファイルの説明
■ bin ‥ コンパイル時に実行ファイルが出力される
■ obj ‥ コンパイル時にコンパイルに必要なファイルが生成される?
■ Properties ‥ リソースファイルなどが含まれる
App.config ‥ アプリケーション設定ファイル
Form1.cs ‥ フォームの挙動を記述していくC#ファイル
Form1.Designer.cs ‥ フォームの外観が自動で記述されていく
Program.cs ‥ メイン関数(Form1.csを生成して実行する記述がある)
test.csproj ‥ プロジェクトの設定ファイル?
赤字にしているのが特に触ることになるファイルです。それぞれの簡単な説明は以下参照
6.2.2 Form1.csについて
「ボタンをおしたときに何をするか」といった「挙動」を記述する際に編集します。
今回勉強する際に見ているサイトはこのファイルを削除している為、Program.csに「class Form1 : Form」を追記しています。本来やるべきではない書き方ですね。
6.2.3 Program.csについて
メイン関数のソースコード。Form1()はここから呼び出してます。
6.2.4 Form1.Designer.cs
フォームの外観が自動で記述されていきます。Form1.cs[デザイン]画面でボタンを置いたり、プロパティ設定すると、こちらに内容が反映されます。
##6.3 namespaceのリネームについて
初回なら、namespace横の名前を右クリックし、「名前の変更」で関連する名前を一括で変更可能
##6.4 class A : Bについて
配信時動画の1:14:15からが分かりやすいかと思います。
Aが実態で、Bは継承元です。Bはusing ~ で書いてる名前空間内のクラスの1つを記載しているはずです。
class Form1 : Form となっている場合は、Formが継承の役割を果たしています。
Formはusing System.Windows.Forms名前空間の中のFormクラスです。
#7. 配信時に見てたサイト
#8. 最後に
以上。第1回の勉強会で学んだことの振り返り(参考サイトの内容以外)でした~。
まとめる時間も無くて、かなり汚い乱文になって申し訳ない。
##ニコニコ配信先
https://com.nicovideo.jp/community/co3601066
Twitch配信先
Discordリンク
今後も配信後に簡単に振り返る記事かきますノシ