Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将一个子例程的变量访问到另一个子例程-VB_Vb.net - Fatal编程技术网

Vb.net 将一个子例程的变量访问到另一个子例程-VB

Vb.net 将一个子例程的变量访问到另一个子例程-VB,vb.net,Vb.net,我有两个问题 我想在我的按钮15中使用结果,单击子按钮 当我在op=sender.Text行中键入时,我看到了intellisense中sender对象的Text方法 这是我的密码 Public Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click, Button11.Click, Button12.Click, Button13.Click, B

我有两个问题

  • 我想在我的
    按钮15中使用
    结果
    ,单击子按钮

  • 当我在
    op=sender.Text
    行中键入时,我看到了intellisense中sender对象的
    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
    

    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
    
    在IntelliSense中看不到
    文本
    的原因是
    发送方
    对象
    ,而不是
    文本框
    ,并且没有
    文本
    属性。我建议您启用
    选项Strict
    ,因为它将显示几个潜在的代码错误。若要获取它,请强制转换发送者

    op = DirectCast(sender, Button).Text(0)
    
    按钮15\u单击
    中也有许多常见的逻辑。我将其改写为:

    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()
    

    op
    需要在类级别声明,以便在多个函数中使用。
    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