フォームアプリ
開き方
- ビジュアルスタジオ
- 新規作成
- プロジェクト
- windows フォームアプリケーションを選択する。
コントロール追加方法
- フォームアプリケーションをクリックすると以下のような画面が出てきます。左上のツールボックスをクリックします。
- 今あるフォームアプリに機能を追加できるコントロール一覧が出てきます。
- 「button」にマウスカーソルを持っていき、フォームアプリ上にドラッグ&ドロップをします。
- フォームアプリにbutton1と表示されたコントロールが表示されます。このボタンはフォーム上でプログラムを実行開始すると、ボタンとして機能するため、クリック時に動作を設定することができます。
複数のフォームを作成する
- 画面右、又はツールバーの表示からソリューションエクスプローラーを開きます。
- プロジェクトを右クリックし、追加からWindowsフォームを選択。
- フォームの名前を必要に応じて変え、追加をクリック。
※わざわざソリューションエクスプローラーを開かなくても、プロジェクトから追加も出来るのでいろいろ試してみて下さい。
また、クラスの追加も上記の様にできます。
メソッドの作り方・呼び出し方
private void 変数名(引数(指定しない場合なくても可))
{
処理内容
}
といった具合でメソッドを作りますが、ここでクラスに気を付けます。
Private と Publicクラスの2種類がありますが、
Private:一つのフォームでメソッドを受け渡す時に使える
Public:2つ以上のフォームでメソッドをまたがって利用したい時使用する。
とあるので、メソッドを作る際には注意して下さい。
呼び出す場合は、
変数名(引数(指定しない場合なくても可));
とすればそのメソッドの処理を呼び出すことができます。
テキストの表示方法
テキストを表示する際によく使うものとして、textBoxやlabelがあります。
textBoxには、文字を直接入力できます。
textBoxやlabelの文字をプログラム上で変更した場合は、
textBox.Text += "入れたい文字";
label.Text += "入れたい文字";
この様に記載すれば、実行時にtextBox又はlabelに文字が入っている。
また、textBox等の中身を消したい場合は、
textBox.ResetText();
label.ResetText();
と記載すればよい。
フォントスタイル
textBoxやlabelに書いたテキストのフォントを変える場合は、
Fontクラスを用いれば簡単に編集ができます。
label.Font = new Font("MS UI Gothic", 20);
とすると、labelに入っているテキストフォントは、「MS UI ゴシック」で、サイズが「20」と設定しています。
また、フォントのスタイルを変えたい場合(例えば、下線を付ける、太文字にする)には
label.Font = new Font("MS UI Gothic", 20, FontStyle.Underline | FontStyle.Bold);
上記の様に、フォントサイズの後に、フォントスタイルを指定すれば良い。
※FontStyleのメンバーは5つあります。
サイズ固定方法
ユーザーに勝手にサイズ変更されないようにする際に使用します。
this.FormBorderStyle = FormBorderStyle.FixedSingle;
また、最大化最小化されないようにする。
this.MaximumSize = this.Size;
this.MinimumSize = this.Size;
表示・非表示
Form1 f = new Form1();
フォームを表示する処理
f.Show();
フォームを隠す処理
f.Hide();
※または、次のように書いても同じです
//f.Visible = false;
フォームを閉じる処理
f.Close();
一定時間で処理を行う(タイマークラス)
プログラム例
public partial class Form3 : Form
{
public Timer t;
public Form3()
{
InitializeComponent();
}
private void Form3_Shown(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = System.Drawing.Image.FromFile(@"C:イラスト.jpg");
//タイマ処理
t = new Timer();
t.Tick += new EventHandler(MyEvent);
t.Interval = 10000; // ミリ秒単位で指定
t.Start();
}
private void MyEvent(object sender, EventArgs e)
{
t.Stop();
Application.Exit();
}
}
上記実行するとForm3がShown(表示)されたら、pictureBox1にイラストという画像ファイルが入り、タイマー処理が開始されます。タイマーがスタートされると、t.Intervalで決めた秒数分待ち時間があり、その後t.Stop();のある、MyEventメソッドが呼ばれ、Application.Exit();が処理されます。
※今回はタイマークラスで一定時間で処理を実行するのものでしたが、一定時間間隔で処理を継続して行うことも出来るので、いろいろ試してみて下さい。
音楽ファイルを再生する方法
※wavファイル推奨なのでファイル形式がmp3等であれば、予めwavファイルに変換しておきます。
wavファイルが出来たらフォルダを作成してファイルを入れます。この時生成するフォルダは実行ファイルと同じ階層にあると望ましいです。
フォルダにファイルが入ったら以下の記述を行います。まず、System.Media.SoundPlayerというクラスを生成し、そこにファイルが入っているフォルダを指定してファイルを開いてあげます。
(例)
System.Media.SoundPlayer 変数名 = new SoundPlayer(@"階層/フォルダ名.wav");
この記述後、Play();と記述してあげれば音楽ファイルが再生されますが、Stop();の記述をしない限り、流れ続けますので注意が必要です。
オブジェクトのクラスについて
・EventArgs
イベントのベースとなるクラスです。主にLoad時で扱われます。
・KeyEventArgs
主にKeyDownイベントとKeyUpイベントに用いられるクラスです。
ただしKeyPressに関しては、KeyPressEventArgsが使用されるので注意が必要です。
・MouseEventArgs
MouseDownイベントやMouseUpイベントに用いられるクラスです。
※関数生成する際に間違ったクラスを用いるとエラーが発生するので気を付けましょう。
ログを出力する方法
ログを出力するには別ファイルを作成して、その中にログ情報を書き込む必要があります。
そのためにはファイルクラスを作る必要があります。
ですので、System.IOという記述をプログラムの初めに行います。
記述したら、次に行いたいアクション(ボタンを押すなど)の中でString.Format メソッドを追加します。
string fileName = string.Format(@"./test.txt");
これはtest.txtを開いています。
※txtがない場合は生成されますので最初から作って用意しておかなくても大丈夫です。
次に、以下の文を追記します。
string contents = string.Format(System.DateTime.Now + "入力したい文字等\r\n");
これは、生成したファイルに文字を書き込む文です。
記述的にはこれで良いのですが、このままだと複数ログが出力された際に古い方を上書きしてしまうので、以下の記述を行います。
File.AppendAllText(fileName, contents,Encoding.UTF8);
これでログが更新されたら下の方に最新記録が出力されるようになります。