0

我有两个问题

  1. 我想result在我的Button15_ click子中使用

  2. 当我在行中输入时op = sender.Text,我在智能感知中看到Text了发件人对象的方法?

这是我的代码

Public Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click, Button11.Click, Button12.Click, Button13.Click, Button14.Click, Button14.Click, Button16.Click
    Dim op As Char
    op = sender.Text

     result = Convert.ToInt32(TextBox1.Text)

End Sub

Public Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
    Select Case op
        Case "+"
            result += Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "-"
            result -= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "*"
            result *= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "\"
            result \= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result


    End Select




End Sub
4

2 回答 2

1

声明op为类级别:

Dim op As Char

Public Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click, Button11.Click, Button12.Click, Button13.Click, Button14.Click, Button14.Click, Button16.Click
    op = sender.Text

    result = Convert.ToInt32(TextBox1.Text)
End Sub

Public Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
    Select Case op
        Case "+"
            result += Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "-"
            result -= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "*"
            result *= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
        Case "\"
            result \= Convert.ToInt32(TextBox1.Text)
            TextBox1.Text = result
    End Select
End Sub

Text在 IntelliSense 中看不到的原因是它sender是a ,而Object不是 a TextBox,并且没有Text属性。我建议您打开Option Strict,因为它会显示几个潜在的代码错误。要得到它,请投射sender

op = DirectCast(sender, Button).Text(0)

中也有很多共同的逻辑Button15_Click。我将其重写为:

Dim rightOperand As Integer = Integer.Parse(TextBox1.Text)

Select Case op
    Case "+"c
        result += rightOperand
    Case "-"c
        result -= rightOperand
    Case "*"c
        result *= rightOperand
    Case "\"c
        result \= rightOperand
End Select

TextBox1.Text = result.ToString()
于 2012-07-26T15:49:21.773 回答
0
Private op as Char

Public Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click, Button11.Click, Button12.Click, Button13.Click, Button14.Click, Button14.Click, Button16.Click 
    op = DirectCast(sender, button).Text
     result = Convert.ToInt32(TextBox1.Text) 
End Sub
于 2012-07-26T15:49:26.693 回答