ボーリングの点数計算プログラム

解決


もがきながら  2004-12-12 18:22:33  No: 118223  IP: [192.*.*.*]

ボーリングのスコア表をvb.Netでつくってます。最初はテキストボックスをずらーっと並べてキーボードで点数を入力するようにしていたのですが、テキストボックスの代わりにコンボボックスを並べてマウスだけで入力ができるようにしたいんです。  そこで入力間違いがないように、もし1投目が9本だった時2投目のコンボボックスには1本以下、1投目が5本だったら2投目は0〜5本しか入力できないようにするにはどうしたらいいのでしょう。

編集 削除
ねろ  2004-12-12 18:59:36  No: 118224  IP: [192.*.*.*]

最近ボーリングなんてとんとやってないな。
ComboBox1を1投目、ComboBox2を1投目の点数とすると、
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    Dim t As Integer
    Dim n As Integer
    ComboBox2.Text = "0"
    ComboBox2.Items.Clear()
    t = Val(ComboBox1.Text)
    For n = 0 To (10 - t)
        ComboBox2.Items.Add(CStr(n))
    Next
End Sub
こんなことでいいんじゃないかな。

編集 削除
もがきながら  2004-12-12 19:34:32  No: 118225  IP: [192.*.*.*]

「ねろ」さん、教えていただいてありがとうございます。
そのようにやってみたらできました!  もうひとつお伺いしたいのですが
たとえば1投目がストライク以外の0〜9本で2投目がスペアだったときに「/」のマークをコンボボックス2(2投目)に表示させる事は可能ですか?
また2投目が0本だった時「0」の代わりに「-」を表示させる事は可能ですか?  よろしくお願いします。

編集 削除
ねろ  2004-12-12 21:49:18  No: 118226  IP: [192.*.*.*]

サービス過剰で誰かに叱られそう(^^;
他の事を書くよりコード書くほうが簡単なので
つい書いてしまう。
Dim t As Integer
Dim n As Integer
t = Val(ComboBox1.Text)
With ComboBox2
   .Items.Clear()
   Select Case (t)
      Case 0 To 8
            .Text = "-"
            .Items.Add("-")
            For n = 1 To (10 - t - 1)
                .Items.Add(CStr(n))
            Next
            .Items.Add("/")
        Case 9
            .Text = "-"
            .Items.Add("-")
            .Items.Add("/")
        Case Else
            .Text = ""
    End Select
End With

編集 削除
もがきながら  2004-12-13 00:38:32  No: 118227  IP: [192.*.*.*]

助けていただいてありがとうございました。無理な橋を渡らせてしまったみたいですいません。私も早くねろさんのようになれるようにがんばります。
でも、またの時はよろしくお願いします。

編集 削除