へ(^o^)へ
|へ
/
\(^o^ )へ
\|
>
<( ^o^)>
三) )三
< ̄ ̄>
Σ ( ^o^)
<) )>グキッ
< ̄ ̄>
_人人 人人_
> 突然の死 <
 ̄Y^Y^Y^Y ̄
いきなりなんだという感じですが、これは数年前に流行っていたネタの1つです。
元気よく踊っている棒人間が腰をいわして死ぬというよくわからないAAと、マンガの吹き出しに様なものに囲まれた文章、いわゆる「突然の死」ネタです。
この吹き出しの中に入れるだけで言葉に勢いが生まれるためか、Twitter上でそれなりに目にしました。
ですがこのネタをやるために、言葉毎に一々吹き出しを作るのが面倒くさい…。
そんな事を思った人たちが、ジェネレーターを作成し、今では「突然の死」でググると結構な数引っかかります。
さて、前置きが長くなりましたが今回はこの「突然の死」ジェネレータを作成します。
・プロジェクトを作成する
「Blend for Visual Studio 2017」を起動します。
起動したらメニューの「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)」を選択します。
「新しいプロジェクト」が表示されるので、中央にある「Windows フォーム アプリケーション」を選択して下さい。
「Windows フォーム アプリケーション」を選択して下さい。
「Windows フォーム アプリケーション」を選択して下さい。
(´◉◞౪◟◉)<おのれMicrosoft
・本当にプロジェクトを作成する
Microsoftは悪くありません。私が悪いです。(2017になって変な名前に変わったんだなぁとか思ってました)
起動するのは「Visual Studio 2017」です。
起動後、先程と同じようにメニューの「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)」を選択します。
今度はちゃんと中央にある「Windows フォーム アプリケーション」を選択します。
名前等々は自由に決めて「OK」を選択します。
これでプロジェクトの作成は完了です。
・コントロールを追加する
テキスト系ジェネレータに必要な項目は3つです。
①元となる文字列の入力欄
②ジェネレータを実行するボタン
③生成したテキストを表示する欄
これらをフォームに貼り付けていきます。
まず左側にある「ツールボックス」を選択し、「ツールボックスウィンドウ」を表示します。
「コモンコントロール」を選択します。
その中にある「TextBox」を選択し、もう一度左側の「ツールボックス」をクリックし「ツールボックスウィンドウ」を閉じます。
フォーム上の好きな所をクリックするとその場所にテキストボックスが貼り付けられます。
次に「ツールボックス」から「Button」を選択し、同じようにフォームに貼り付けます。
最後にまた「TextBox」を貼り付けてコントロールの追加は完了です。
・コントロールを調整する
貼り付けた直後のコントロールはデフォルト状態なので、ジェネレータに適切なコントロールにしていきます。
コントロールを選択すると、このように選択枠が表示されます。
右側の□をドラッグしてウィンドウに右端まで伸ばします。
次に一番下のテキストボックスを選択して、▶をクリックして表示される「MultiLine」のチェックを有効にします。
チェックを有効にするとテキストボックスの八方に□が表示されるので、右下の□をドラッグしていい感じのサイズにします。
最後にボタンを選択します。
右下の「プロパティウィンドウ」の「Text」に「button1」とあるので、「生成」に書き換えましょう。
・コードの記述
書き換えたらフォーム上のボタンをダブルクリックします。
するとエディタ画面が表示されます。
「button1_Click」関数は、フォーム上の「生成」ボタンがクリックされたタイミングで実行される関数です。
この中にテキスト生成のコードを記述します。
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(); }