理想体重ゲッター

 VB.NETで組んだものを試しにC#で組み直して見ました。全く同じ処理内容ですが、C#言語だとどうなるのかご参考まで(^^ゞ

フォーム作成

 SharpDevelopで新しいプロジェクトとして「理想体重ゲッター」を登録します。次に中央のMainForm.csのデザインタブをクリックし、中のフォームのサイズを調整後、下図のようにプログラム部品を貼り付けて行きます。

見やすくする為に、フォーム部分だけをズームアップしましょう。

 テキストボックスなどの部品を貼り付ける際には、補助線のようなものが現れて、部品同士の位置を自動調整してくれます。とっても便利です。

各部品のプロパティ

 各部品の名称は全てデフォルトのものを使用します。もっと複雑なプログラムの場合は、当然分かりやすくする為に名称を変える必要があると思います。

 各部品の「プロパティ」からそれぞれ「表示」項目の「Text」の値を入力します。デフォルトでは各部品の名称がそのまま表示されてしまいますのでお間違えのなきよう_(._.)_

プログラムコード

 では最後に、各ボタンを押した時の処理コードを記述して行きます。このプログラムは非常に簡単なものなので、各コマンドボタンを押した時の処理コードをソースに書いて行けばそれでO.K.です。ソースコードを表示した画面は下図のようになります。

では、各ボタンを押した時の実際の処理コードを見て行きましょう。

「終了」ボタン(button3)

void Button3Click(object sender, EventArgs e)
{
  //フォームを閉じる
  this.Close();
}

 「this」は自分自身を指しますので、「this.Close();」はフォーム自体を閉じる命令になります。命令文の最後には処理の終了を表す「;」を付けます。C#言語ですので。

「リセット」ボタン(button2)

void Button2Click(object sender, EventArgs e)
{
  //テキストボックスの値をクリアします
  textBox1.Text = "";
  textBox2.Text = "";
}

 「リセット」ボタンのコード内容はVB.NETの場合と全く同じです。違いと言っても、各処理文の最後に「;」が付いているくらいです。

「計算」ボタン(button1)

void Button1Click(object sender, EventArgs e)
{
  //テキストボックスの値を変数に格納する
  string tall = textBox1.Text;
  //入力された身長の値を判定
  if(tall == ""){
    MessageBox.Show("値が入力されていません。","注意!");
  }
  else{
    if(Validation.IsNumeric(tall)){
      //tallの型をダブルに変換して変数tall2に格納
      double tall2 = double.Parse(tall);
      //理想体重を計算し、値を変数weightに格納
      double weight = (tall2 / 100) * (tall2 / 100) * 22;
      //weightの値を文字列に変換してテキストボックス2に表示
      string weight2 = weight.ToString();
      textBox2.Text = weight2;
    }
    else{
      MessageBox.Show("入力された値が数値ではありません。","注意!");
    }
  }
}

 ここがこのプログラムのメインとなる部分です。まず計算の判断基準となる身長「tall」の値をstring型で宣言します。そして値が入力されていない場合に、メッセージボックスで注意する処理をまず書きます。

 次に入力された値が数値なのかどうかを判定しなくてはいけません。間違って全角数字で打ち込む場合も考えられますので…。ここで使っているクラス「Validation.IsNumeric()」は、ネットから頂いて来たものです。「public MainForm()」の前に挿入しています。以下に処理コードを示します。(コード内容については聞かないでね(^^ゞ…)

public sealed class Validation {
  public static bool IsNumeric(string stTarget) {
    double dNullable;
    return double.TryParse(
      stTarget,
      System.Globalization.NumberStyles.Any,
      null,
      out dNullable
    );
  }
  public static bool IsNumeric(object oTarget) {
    return IsNumeric(oTarget.ToString());
  }
}

 後は、各値をまずDouble型に変換してから計算し、最後に計算結果をString型に変換し直してテキストボックスに表示しています。

 C#については僕も勉強し始めたばかりなので、コード内容に不適切なものもあるかも知れません。一応コンパイルしてエラーが出なかったので良しとしています。飽くまでもご参考まで、と言う事で(^^ゞ

 

HOME

次へ