LoginSignup
2
1

More than 5 years have passed since last update.

VB 疑問点

Posted at

電卓を作成しようとしたのだが、共通化という壁が越えられない。

Public Class Form1

    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles lblAnser.Click

    End Sub

    Dim eng_num(10) As String
    ' [ Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine }
    Dim Zero As String = eng_num(0)
    Dim One As String = eng_num(1)
    Dim Two As String = eng_num(2)
    Dim Three As String = eng_num(3)
    Dim Four As String = eng_num(4)
    Dim Five As String = eng_num(5)
    Dim Six As String = eng_num(6)
    Dim Seven As String = eng_num(7)
    Dim Eigth As String = eng_num(8)
    Dim Nine As String = eng_num(9)

    Private Sub ButtonClick(sender As Object, e As EventArgs) Handles "btn" + "eng_num(0)" + ".Click"
     #ここが挑戦してる所
    End Sub

    Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
   #ここが理想
    End Sub
End Class

ん~VB勉強して間もないですが、rubyとは違って共通化が難しく感じる。。

    Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
        lblAnser.Text = lblAnser.Text & "1"
    End Sub

    Private Sub btnTwo_Click(sender As Object, e As EventArgs) Handles btnTwo.Click
        lblAnser.Text = lblAnser.Text & "2"
    End Sub

    Private Sub btnThree_Click(sender As Object, e As EventArgs) Handles btnThree.Click
        lblAnser.Text = lblAnser.Text & "3"
    End Sub

    Private Sub btnFour_Click(sender As Object, e As EventArgs) Handles btnFour.Click
        lblAnser.Text = lblAnser.Text & "4"
    End Sub

    Private Sub btnFive_Click(sender As Object, e As EventArgs) Handles btnFive.Click
        lblAnser.Text = lblAnser.Text & "5"
    End Sub

    Private Sub btnSix_Click(sender As Object, e As EventArgs) Handles btnSix.Click
        lblAnser.Text = lblAnser.Text & "6"
    End Sub

    Private Sub btnSeven_Click(sender As Object, e As EventArgs) Handles btnSeven.Click
        lblAnser.Text = lblAnser.Text & "7"
    End Sub

    Private Sub btnEight_Click(sender As Object, e As EventArgs) Handles btnEight.Click
        lblAnser.Text = lblAnser.Text & "8"
    End Sub

    Private Sub btnNine_Click(sender As Object, e As EventArgs) Handles btnNine.Click
        lblAnser.Text = lblAnser.Text & "9"
    End Sub

これを共通化したいと思い始めたが、まだ自分には早かったか。
ちなみにボタンのNameがbtnZero,btnOne、btnTwo,,,btnNineでそれぞれ定義しており
Textにはそれぞれ0~10までが入っています。

lblAnser.Text = lblAnser.Text & bntOne.Text

でメソッドの中身は軽く別の方法で取り出せてはいるが、、、問題の英語の部分をArrayでもってくるか、適当な変数で定義しておいて条件分岐でやるのか、もしくはFunction、Moduleを利用すべきか。
ふむ、、、わからぬ。

今後の課題として、

変数の使い方が未だに理解できていないため、それを理解
sub、Private Subなどクラス名?の意味の理解
Dim使用時の宣言場所の判断

などなどやることが多い。
アドバイス等してもらえると助かります!
以上疑問点でした。。

2
1
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1