Re:ゼロから始めるC#

Re:ゼロから始めるC#

JavaばっかやってましたがC#を使うことになったので備忘録的に

Level1 初めてのC#2~Hello World~

お昼ご飯にとんかつ食べたらやる気出てきたので続きかきます。
これの続きです。
chankato.hatenablog.com

Form1.csファイル

すみませんこれが正しくはなんていうファイル名というかファイルの種類なのかわかりませんでした。
知っている方いたら教えてください。

前回エントリーポイントからForm1のインスタンスが生成されているのでそちらを見てみましょうというところで力尽きましたので、そこから進みます。
画面的にはこれです。f:id:chankato:20190212121051p:plain

前も言った通りここではJavafxのようにドラッグアンドドロップでボタンなどを配置できるようです。
さっそくボタンを配置したいと思います。

ボタン配置

画面右側のツールボックスからButtonを選択し、ドラッグアンドドロップで中央の画面に配置します。
f:id:chankato:20190212144719p:plainf:id:chankato:20190212144723p:plain
ほんと押して持ってくるってだけなので超簡単です。
VS陵南戦で疲れ果ててポカリの缶すら開けられない三井寿でもギリできるくらい簡単です。f:id:chankato:20190212145332j:plain

ボタンプロパティ変更

ボタンの表示名がbutton1だと味気ないので変えましょう。
どうやって変えるんだろう、と適当に操作してみました。
ボタンをダブルクリック→なんか知らんけどコードが表示されるので駄目
f:id:chankato:20190212145723p:plain
と、ここで気づいたんですけど
さっきまでいじっていたForm1.csは正しくはForm1.cs[デザイン]というファイルなんですね。
そんでこのコードが書いてあるのがForm1.cs
17行目に

private void button1_Click(object sender, EventArgs e) {

        }

とあるので、多分ここに処理を書けばボタンクリック時の処理を変えられそうです。

ちなみに12行目の

public partial class Form1 : Form {

っていうのがあんまり見たことない記述だったんですけど調べてみたら継承を表しているようでした。
Javaで言うところの

extends

ってやつですね。使い方的にはこんな感じらしいです。

class Person
{
  public string name; // 名前
  public int    age;  // 年齢
}

class Student : Person
{
  public int    id;   // 学籍番号
}

エントリーポイントのところで生成していたのは
13行目の

public Form1() {
            InitializeComponent();
        }

のようですね。Initializeとかいてあるのでインスタンス生成などの初期化処理の際に呼び出すものと思われます。

ただいまはここはいじらずにとりあえずデザインのほうを変えたいと思います。
画面右側に[プロパティ]と書いてある一覧があります。
f:id:chankato:20190212150620p:plain
それの下のほうに行くとそれっぽいのがあります。
[表示]>[Text]のところを変更してみます。
f:id:chankato:20190212150850p:plain
文字が入りきらなかったのでボタンの枠を引っ張ってみたら普通に大きくなりました。

ボタン効果設定

どうやってクリック時の処理を紐づけるかわからなかったのでGoogle先生におねだりしまくって教えてもらいました。
さっきのプロパティのところの上のほうに雷マークみたいなのがあるのでそれをクリックしてください。
そうするとこんな画面が表示されます。
f:id:chankato:20190212151232p:plain
これの一番上に[アクション]ってあってその中に[Click]といういかにもなのがあるので選択してください。
んで、そこの中にある[button1_Click]ってところをダブルクリックすると、先ほどのForm1.csの画面に遷移するようです。
f:id:chankato:20190212145723p:plain
さっきも言っていた通りこのpivateメソッドの中に処理を記述すればいいと思うので書いてみます。

とりあえずはOKボタンでも表示してみますかということで調べました。

   private void button1_Click(object sender, EventArgs e) {
            DialogResult result = MessageBox.Show("Hello World!");
        }

はい、これでCtrl+Sで保管したらF5押しちゃってください。
f:id:chankato:20190212154814p:plain
んでボタン押すと
f:id:chankato:20190212154817p:plain
ほい!ようこそC#力が支配する世界へ!

今回の獲得経験値

獲得量:56
次回レベルアップまで:147
現在レベル:Level2
獲得スキル:
 ボタン配置
 ボタン表示名変更
 ボタンクリック時アクション追加
 メッセージボックス表示
解放実績:
 ようこそ新世界
  C#を使って「Hello World」を出力する