Reputation: 7638
I have two questions
I want to use result
in my Button15_ click
sub
when i was typing in the line op = sender.Text
,I dint saw Text
method of sender object in intellisense ?
Here is my code
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
Upvotes: 0
Views: 8921
Reputation: 224904
Declare op
as class-level:
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
The reason you don't see Text
in IntelliSense is that sender
is an Object
, not a TextBox
, and does not have a Text
property. I recommend that you turn on Option Strict
, as it will reveal several potential code errors. To get it, cast sender
:
op = DirectCast(sender, Button).Text(0)
There's also a lot of common logic in Button15_Click
. I'd rewrite it as:
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()
Upvotes: 1
Reputation: 4354
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
Upvotes: 0