株式会社シベスピ 従業員ブログ

シベスピの社員ブログ。技術・想い・経験沢山書いていきます!

【C#】突然の死【Windowsフォームアプリケーション入門】

へ(^o^)へ
   |へ
  /

\(^o^ )へ
  \|
   >

<( ^o^)>
 三) )三
< ̄ ̄>

Σ ( ^o^)
 <) )>グキッ
< ̄ ̄>


_人人 人人_
> 突然の死 <
 ̄Y^Y^Y^Y ̄



こんにちは。Iskです。
いきなりなんだという感じですが、これは数年前に流行っていたネタの1つです。
元気よく踊っている棒人間が腰をいわして死ぬというよくわからないAAと、マンガの吹き出しに様なものに囲まれた文章、いわゆる「突然の死」ネタです。

この吹き出しの中に入れるだけで言葉に勢いが生まれるためか、Twitter上でそれなりに目にしました。
ですがこのネタをやるために、言葉毎に一々吹き出しを作るのが面倒くさい…。
そんな事を思った人たちが、ジェネレーターを作成し、今では「突然の死」でググると結構な数引っかかります。

さて、前置きが長くなりましたが今回はこの「突然の死」ジェネレータを作成します。


・プロジェクトを作成する

「Blend for Visual Studio 2017」を起動します。
起動したらメニューの「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)」を選択します。
「新しいプロジェクト」が表示されるので、中央にある「Windows フォーム アプリケーション」を選択して下さい。
f:id:chivsp:20170604183153p:plain



Windows フォーム アプリケーション」を選択して下さい。
f:id:chivsp:20170604183157p:plain



Windows フォーム アプリケーション」を選択して下さい。
f:id:chivsp:20170604183201p:plain


(´◉◞౪◟◉)<おのれMicrosoft









・本当にプロジェクトを作成する

Microsoftは悪くありません。私が悪いです。(2017になって変な名前に変わったんだなぁとか思ってました)
起動するのは「Visual Studio 2017」です。
f:id:chivsp:20170604183211p:plain



起動後、先程と同じようにメニューの「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)」を選択します。
今度はちゃんと中央にある「Windows フォーム アプリケーション」を選択します。
名前等々は自由に決めて「OK」を選択します。
f:id:chivsp:20170604183220p:plain



これでプロジェクトの作成は完了です。
f:id:chivsp:20170604183227p:plain




・コントロールを追加する

テキスト系ジェネレータに必要な項目は3つです。
①元となる文字列の入力欄
②ジェネレータを実行するボタン
③生成したテキストを表示する欄
これらをフォームに貼り付けていきます。

まず左側にある「ツールボックス」を選択し、「ツールボックスウィンドウ」を表示します。
「コモンコントロール」を選択します。
f:id:chivsp:20170604183232p:plain

その中にある「TextBox」を選択し、もう一度左側の「ツールボックス」をクリックし「ツールボックスウィンドウ」を閉じます。
フォーム上の好きな所をクリックするとその場所にテキストボックスが貼り付けられます。
f:id:chivsp:20170604183240p:plain


次に「ツールボックス」から「Button」を選択し、同じようにフォームに貼り付けます。

最後にまた「TextBox」を貼り付けてコントロールの追加は完了です。
f:id:chivsp:20170604183247p:plain




・コントロールを調整する

貼り付けた直後のコントロールはデフォルト状態なので、ジェネレータに適切なコントロールにしていきます。

コントロールを選択すると、このように選択枠が表示されます。
f:id:chivsp:20170604183254p:plain



右側の□をドラッグしてウィンドウに右端まで伸ばします。
f:id:chivsp:20170604183257p:plain



次に一番下のテキストボックスを選択して、▶をクリックして表示される「MultiLine」のチェックを有効にします。
f:id:chivsp:20170604183301p:plain



チェックを有効にするとテキストボックスの八方に□が表示されるので、右下の□をドラッグしていい感じのサイズにします。
f:id:chivsp:20170604183304p:plain



最後にボタンを選択します。
右下の「プロパティウィンドウ」の「Text」に「button1」とあるので、「生成」に書き換えましょう。
f:id:chivsp:20170604183307p:plain




・コードの記述

書き換えたらフォーム上のボタンをダブルクリックします。
するとエディタ画面が表示されます。
「button1_Click」関数は、フォーム上の「生成」ボタンがクリックされたタイミングで実行される関数です。
この中にテキスト生成のコードを記述します。
f:id:chivsp:20170604183313p:plain

private void button1_Click(object sender, EventArgs e)
{
    // 一番上にある入力用のテキストボックスから文字列を取得
    string srcText = textBox1.Text;

    // 入力されたテキストを半角は1文字、全角2文字として取得
    int size = Encoding.GetEncoding("Shift_JIS").GetByteCount(srcText);

    // トゲ吹き出しの作成
    var cnv = new StringBuilder();
    cnv.Append("_");
    cnv.Insert(cnv.Length, "人", size / 2);
    cnv.Append("_");
    cnv.AppendLine();

    cnv.Append("> ");
    cnv.Append(srcText);
    cnv.Append(" <");
    cnv.AppendLine();

    cnv.Append(" ̄");
    cnv.Insert(cnv.Length, "Y^", size / 2);
    cnv.Append(" ̄");

    // 作成したテキストを一番下の出力用テキストボックスに設定
    textBox2.Text = cnv.ToString();
}

・プログラム実行

コードが記述できたらプログラム実行の実行をして、正しく動作するか確認します。
メニューバーの「デバッグ(D)」→「デバッグの開始(S)」を選択して下さい。
f:id:chivsp:20170604183320p:plain



先程作成したフォームが表示されます。
f:id:chivsp:20170604183327p:plain



適当に一番上のテキストボックスに文字列を入力し、生成ボタンを押して下さい。
一番下のテキストボックスにこんな感じでトゲ吹き出しに囲まれた文字列が表示されれば成功です。
f:id:chivsp:20170604183330p:plain




・おわり

これがWindowsフォームの基本的な扱い方になります。
ボタンとテキストボックスという極々一般的なコントロールの使い方を学びました。
コントロールやそれのプロパティ・イベントはまだ無数にありますが、順番に紹介していきたいと思います。
さて次回はこんな感じです。


f:id:chivsp:20170604183335p:plain



お疲れ様でした。