2011-12-18 15 views
0

私はC#でちょっとしたゲームを作ろうとしています。
プログラムは、ユーザーに任意の番号を尋ねます。
ユーザは「GO」(ボタン1)を押し、プログラムはその番号が偶数であるかどうかをチェックする。 (x%2 == 0)ケース(チェックボックス、ラジオボタンなど)をケースで表示する(もしあれば...その他...)

私は、それぞれのケースに応じて合計8個のうち4個のチェックボックス/ラジオボタンを表示するようにプログラムを取得しようとしています。たとえば
:プログラムがオプション2,5,3,6が表示されます:

  • 数が偶数である場合。
  • 数字が奇数の場合:プログラムは1,4,7,8のオプションを表示します。

(オプション1-8は既に設計に含まれていた。)

私はif (x % 2 == 0)一部を支援する必要があります。チェックボックスやラジオボタンが表示されたり消えたりするには、何を書きますか?

ところで、「GO」をクリックしなくてもユーザーに番号を尋ねる方法はありますか? 同様に、ENTERキーを使用します。はいの場合、それはどのような出来事ですか?
また、テキストボックスをINTに限定する方法はありますか?

私はそれがあなたに仕事を依頼していることを知っていますが、私は試してきました。私はまだ本当の初心者です。したがって、自分の学習方法は実際に体験していると思います。

public partial class Form1 : Form 
{ 
    int x; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     x = int.Parse(textBox1.Text); 
     if (x % 2 == 0) 
     { 
     } 
    } 
} 

答えて

1

CheckBoxControlから継承)のVisibleプロパティは、必要なコントロールを表示するのに役立ちます。

if (num % 2 == 0) 
{ 
    box1.Visible = false; 
    box2.Visible = true; 
    // ... 
} 
else 
{ 
    box1.Visible = true; 
    box2.Visible = false; 
    // ... 
} 

、次のようになります場合はごただし、これは代わりに2つの条件文を符号化すると同時に、すべてのCheckBox秒の可視性を設定する条件を使用してビットを最適化することができます - のようなもの:

box1.Visible = !(num % 2 == 0); 
box2.Visible = (num % 2 == 0); 
// ... 

Enterキーを押したときは、OnKeyDownイベントを制御してください。デザイナーがこれを行うことができます。あなたのイベントメソッドは次のようになります:

private void myControl_OnKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     // Handle enter key pressed here 
    } 
} 

これはあなたの問題に役立ちます。

ADDITIONAL応答

List<CheckBox> boxes = new List<CheckBox>(); 
// Add all boxes and do other stuff, disable all 

foreach (CheckBox box in boxes) 
{ 
    box.Visible = false; 
} 
+0

おかげで、ところで、全くボックスをすべて非表示にする方法はありますか?それらのすべてに対して 'box1.Visible = false; box2.Visible = false'と書くのではなく? – Asaf

+0

それらをジェネリックリスト( 'List boxes')に入れて、' foreach'ループを使います。答えにスニペットを追加します。 –

0

intにテキストボックスを制限するために、あなたはOnKeyPressedをオーバーライドすることができます。チェックボックスについては、VisibleまたはCheckedのプロパティを使用できます。

関連する問題