🐉 C# 学習2日目 -1- こんなに簡単とは!文字と画像と背景と
作成日: 2023/01/08
0

C# 学習2日目 その1

WindowsのWindowに文字と画像と背景を載せる

今回の学習テーマ

今回は、C#で WindowsのWindowが立ち上がるアプリを作ります。
(前回はコンソール画面に、Hellowordを表示するプログラムでした)

・タイトルバーにタイトルを載せます。
・本体(Form)に文字と画像と背景を載せます。

実際は、「やさしいC#」(初版本 ブックオフで購入)をもとに
学習を進めています。

今回のC#の学習方針として、「応用しながら作る」というのを掲げていますので、
ある程度の単位でまとめながら、アレンジしたものを作っていきたいと思っています。
また、各サンプルを一つのプロジェクトに入れてしまうと、
Main関数(エントリーポイント)が複数あるというエラーが
出てしまう問題の解決という意味合いもあります。

学習コーディング

あらかじめ、
背景画像:bg1.png
バスの画像:bus1.png
を用意しました。
bg1.png
背景画像:bg1.png

bus1.png
バスの画像:bus1.png

C# Sample2

using System.Windows.Forms;
using System.Drawing;

class Sample2
{
    public static void Main()
    {
        //Window(Form)オブジェクトを作る + タイトルを表示
        Form fm;
        fm = new Form();
        fm.Text = "ここがWindowタイトル";
        fm.Width = 600;
        fm.Height = 400;

        //ウィンドウの背景に背景画像を表示
        fm.BackgroundImage = Image.FromFile("f:\\images\\bg1.png");

        //画像のためのPictureBoxオブジェクトを作ります
        PictureBox pb = new PictureBox();
        pb.Width = 144;
        pb.Height = 102;
        pb.Left = 410;
        pb.Image = Image.FromFile("f:\\images\\bus1.png");

        //文字表示のためのラベルを作ります
        Label lb = new Label();
        lb.Width = 400;
        lb.Top = 135;
        lb.Left = 50;
        lb.Text = "草原風景の背景画像の上にバスの画像を載せ、ラベルにこの文字を載せました。";
        //各オブジェクトはどのFormの上に載せるのか、親オブジェクトを指定することで、表示します
        pb.Parent = fm;
        lb.Parent = fm;

        //最後に実行します
        Application.Run(fm);
    }
}

実行結果
Sample2_Run_Result_2023-0108.jpg

見事できました!
各コードの説明は、コメントに書いています。

今回のポイントは、タイトルバーに表示するタイトル文字と、
背景画像は、直接Window Formのプロパティを設定するため、
それだけで表示できますが、
Window Formの上に載せる、文字表示用ラベル画像オブジェクトは、
載せる先の親オブジェクトであるFormのオブジェクトを教えてあげないといけません
表示しないな と思ったらここチェックですね。
パスの記述のバックスラッシュ二つはフォルダの意味を示します。
WindowsのVisual Studioではバックスラッシュは¥¥になります。
あとは、最後に、Application.Run()で実行

実際は、タイトル表示、文字表示、画像表示、背景表示の各バラバラの学習サンプルを
ひとつにまとめてみました。

実は、画像編集の問題か、コーディングの問題かわかりませんが、
画像が透過出来なかったので、急遽、四角いバスの画像にして、ごまかしました(笑)

C#はじめて2日目ですが、こんなに簡単にここまでできるとは思いませんでした。

続きの学習は… エントリーポイント重複エラー対策

今回、-1-としましたが、本日C# 学習2日目は二本立てになる予定です。
-2-では、Main関数(エントリーポイント)が複数あるというエラーについて、
少し考察したことをまとめたいと思います。


これからゲームアプリとWindowsアプリを作りたい初心者です。 ゲームアプリとWindowsアプリ、共に経験ゼロです。 これからの体験が少しでも参考になれば幸いです。 目指す事 ・C言語学習→C#学習 ・Unity (C#) の勉強 ・Unityゲーム作成 ・Windowsアプリ(C#) 作成