0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラム初心者勉強会 2回目 -C# Windowsフォーム入門

Last updated at Posted at 2021-10-16

#1. 前回リンク
https://qiita.com/Usyuuu-program-beginner/items/ca6d2019a1e5a933faf6

#2.次回記事リンク
https://qiita.com/Usyuuu-program-beginner/items/6b010dce68b437e5a72e

#3. やったこと
下のサイトの 5.イベント~6.コントロールまでを学習
http://kaitei.net/csforms/

#4. 配信時の録画
https://youtu.be/LV1YP31IyFw

※動画のチャプターはコメント欄の固定コメントを参照ください。

#5. 今回学んだこと
Windowsフォームというよりも、クラスとは何かを学びました。

#6. クラスとは
オブジェクトを作る為の設計図のようなもの。

記載例

class Form1
{
  (クラスの実装)
}

このクラスから作られた実体のことが「インスタンス」
new()関数を使用すること生成されます

Application.Run(new Form1());

##6.1 クラスの構造について
Cを学んできた人は**「構造体」のような構造**と言えば伝わりやすいと思います。
クラスは以下のように、メンバ変数やメンバ関数(メソッド)がクラス内で定義されます。

class Form1 : Form
{
    int clickCount = 0;  // メンバ変数1
    Button button;       // メンバ変数2

    // メンバ関数(コンストラクタ)
    public Form1()
    {
        button = new Button()
        {
            Text = "クリックしてください",
            Location = new Point(10, 10),
            Size = new Size(160, 40),
        };

        // イベントハンドラを登録
        button.Click += new EventHandler(button_Click);

        this.Controls.Add(button);
    }

    // イベントハンドラ本体
    void button_Click(object sender, EventArgs e)
    {
        clickCount++;
        button.Text = clickCount + " 回クリックされました";
    }
}

##6.2 コンストラクタについて
クラスの中で、クラス名と同じ名前のメンバ関数のことを「コストラクタ」と呼びます
インスタンスが生成される際に実行されるメソッドのことです。

##6.3 thisとはなにか
クラスをインスタンス化したものを"this"で参照する。

3.2章「クラスの構造について」のソースコード例内にある”this.Controls.Add(button);"は「Form1」のインスタンス化されたものを"this"で参照している。

##6.4 Control.Add()は何をしているのか
登録先のフォームへ、指定のコントロールを追加するためのメソッド。

コントロールの定義をしたクラスをインスタンスしただけでは、フォーム上に反映されません。
Control.Add()メソッドを使用するか、コントロールのParentプロパティを使用して登録することで初めてフォーム上に情報が反映されます。

※ コントロールとは
ボタンやチェックボックスなどといった部品の事を「コントロール」と呼ぶ。

#7 InitializeComponentとForm1(コンストラクタ)の使い分けについて
##5.1 InitializeComponentの使用用途

Program.cs内の void Main()から呼び出される初期設定用メソッド。
Form1.cs[デザイン]画面で編集した内容が自動的に反映されるのが”InitializeComponent"であり、自分で編集することは無い。

##7.2 Form1(コンストラクタ)の使用用途
クラス”Form1”をインスタンス化した際に最初に処理されるメソッド。

自分で処理内容を編集する為、Form1.cs[デザイナ]では実装できない初期設定処理はこちらに実装する。

#8 EventVisualStylesとは
色やフォント等を制御する際に呼ばれるメソッド。
上記を修正したりした場合は、Main()メソッドから呼び出す。

#9 オーバーロードとは
同じ名前で違う引数の関数を定義できること。

class Test
{
    public void Test( int a )
    {
       //コンストラクタ(1)の処理
    }

    public void Test( char a )
    {
       //コンストラクタ(2)の処理
    }

    public void Test( int a int b)
    {
       //コンストラクタ(3)の処理
    }
}

#10 オーバーライドとは
既存のイベントハンドラ内容を上書きして、独自のイベントハンドラとして定義できる


#11 最後に
今回も参考サイトの内容とは別に多くのことを学習できました。
次回は章以降の勉強を進めようと思います。

## ニコニコ配信先
https://com.nicovideo.jp/community/co3601066

Twitch配信先

Discordリンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?