C# 学習2日目 その1
WindowsのWindowに文字と画像と背景を載せる
今回の学習テーマ
今回は、C#で WindowsのWindowが立ち上がるアプリを作ります。
(前回はコンソール画面に、Hellowordを表示するプログラムでした)
・タイトルバーにタイトルを載せます。
・本体(Form)に文字と画像と背景を載せます。
実際は、「やさしいC#」(初版本 ブックオフで購入)をもとに
学習を進めています。
今回のC#の学習方針として、「応用しながら作る」というのを掲げていますので、
ある程度の単位でまとめながら、アレンジしたものを作っていきたいと思っています。
また、各サンプルを一つのプロジェクトに入れてしまうと、
Main関数(エントリーポイント)が複数あるというエラーが
出てしまう問題の解決という意味合いもあります。
学習コーディング
あらかじめ、
背景画像:bg1.png
バスの画像:bus1.png
を用意しました。
背景画像:bg1.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);
}
}
実行結果
見事できました!
各コードの説明は、コメントに書いています。
今回のポイントは、タイトルバーに表示するタイトル文字と、
背景画像は、直接Window Formのプロパティを設定するため、
それだけで表示できますが、
Window Formの上に載せる、文字表示用ラベルや画像オブジェクトは、
載せる先の親オブジェクトであるFormのオブジェクトを教えてあげないといけません。
表示しないな と思ったらここチェックですね。
パスの記述のバックスラッシュ二つはフォルダの意味を示します。
WindowsのVisual Studioではバックスラッシュは¥¥になります。
あとは、最後に、Application.Run()で実行!
実際は、タイトル表示、文字表示、画像表示、背景表示の各バラバラの学習サンプルを
ひとつにまとめてみました。
実は、画像編集の問題か、コーディングの問題かわかりませんが、
画像が透過出来なかったので、急遽、四角いバスの画像にして、ごまかしました(笑)
C#はじめて2日目ですが、こんなに簡単にここまでできるとは思いませんでした。
続きの学習は… エントリーポイント重複エラー対策
今回、-1-としましたが、本日C# 学習2日目は二本立てになる予定です。
-2-では、Main関数(エントリーポイント)が複数あるというエラーについて、
少し考察したことをまとめたいと思います。