2016-08-09 1 views
0

私はプログラミングには新しく、私はできない何かを私がしている問題についてインターネットから見つけることはできません。他のクラスからフォームツールにアクセスするには

私は練習のための基本的なルールゲームを作っています。

"クリーンコーディング"のために、別のクラスで計算を行いたいと思います。

しかし、私は、私が作った計算クラスからradioButton、CheckBox、TextBoxのようなものをコントロールすることはできません。

どうすればアクセスできますか?

たとえば、別のクラスから偶数または奇数ならルーレット数をチェックしたいと思います。

// form.cs 

public static int ruletNumber; 

private void btnPlay_Click(object sender, EventArgs e) 
{ 
    Random rnd = new Random(); 
    ruletNumber = rnd.Next(0,37); 
    Calculation.Calc(); 

} 



//Calculation.cs 
class Calculation 
{ 
     public static void Calc() 
     { 
      // this is where i must see if the radioButton is Checked or Not, but it dosent see it from this Class... 
      if (ruletNumber/2 == 0 && rdbEven.Checked == true) 
      { 
       //some code... 
      } 
     } 

} 
+1

パスパラメータがありますかどうかを確認しようとしているので、あなたの条件ruletNumber/2 == 0ruletNumber % 2 == 0べきであると信じています。 ruletNumberとチェックされた状態をパラメータとしてCalcメソッドに渡します。 –

+0

計算のプロパティを持つエンティティクラスを定義します。フォームから、チェックボックスのクリックなどに応じてクラスのプロパティを操作します。次に、そのオブジェクトをCalculationクラスに渡してそこから計算を行います。あなたが必要に応じてオブジェクト情報を制御することができます。 –

+0

他のクラスのradioButtonを制御することは不可能ですか?それ以外はform.cs? – Mizuchi

答えて

1

あなたは以下のようなあなたのクラスのメソッドのシグネチャを変更する必要があります。その場合には

ruletNumber = rnd.Next(0,37); 
Calculation.Calc(ruletNumber, rdbEven.Checked); 

のようなあなたのCalc()方法にそれらのパラメータを渡します。また、私はあなたがそれが奇数/偶数

class Calculation 
{ 
     public static void Calc(int ruletNumber, bool radiostate) 
     { 
     if (ruletNumber % 2 == 0 && radiostate) 
     { 
      //some code... 
     } 
    } 
関連する問題