By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,881 Members | 1,153 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,881 IT Pros & Developers. It's quick & easy.

how to group similar events?

P: n/a
Hello,

I have a group of textboxes where I change the text to lower on leave, but I
am sure there is a more efficient way to do this.

rivate Sub txt1_Leave(...) Handles txt1.Leave
Dim str1 As String = txt1.Text.ToLower
txt1.Text = str1
End Sub

Private Sub txt2_Leave(...) Handles txt2.Leave
Dim str1 As String = txt2.Text.ToLower
txt2.Text = str1
End Sub

Private Sub txtI3_Leave(...) Handles txtIDfld.Leave
Dim str1 As String = txtIDfld.Text.ToLower
txtIDfld.Text = str1
End Sub

Private Sub txt4_Leave(...) Handles txt4.Leave
Dim str1 As String = txt4.Text.ToLower
txt4.Text = str1
End Sub
I think the above can be replaced with something like

Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1

nothing happends. The text in the textbox did not get changed. Any
suggestions appreciated what I could do to make this work.

Thanks,
Rich
Feb 6 '06 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Rich wrote:
Hello,

I have a group of textboxes where I change the text to lower on leave, but I
am sure there is a more efficient way to do this.

rivate Sub txt1_Leave(...) Handles txt1.Leave
Dim str1 As String = txt1.Text.ToLower
txt1.Text = str1
End Sub

Private Sub txt2_Leave(...) Handles txt2.Leave
Dim str1 As String = txt2.Text.ToLower
txt2.Text = str1
End Sub

Private Sub txtI3_Leave(...) Handles txtIDfld.Leave
Dim str1 As String = txtIDfld.Text.ToLower
txtIDfld.Text = str1
End Sub

Private Sub txt4_Leave(...) Handles txt4.Leave
Dim str1 As String = txt4.Text.ToLower
txt4.Text = str1
End Sub
I think the above can be replaced with something like

Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1

nothing happends. The text in the textbox did not get changed. Any
suggestions appreciated what I could do to make this work.

Thanks,
Rich


Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = DirectCast(sender, TextBox).Text.ToLower
DirectCast(sender, TextBox).Text = str1
End Sub

If you turned on "Option Strict On" at the top of your class you would
have be told about this problem. I recommend always using it.

Chris
Feb 6 '06 #2

P: n/a
Thank you that worked. FYI, I did have option strict on. I did think I
would get a message about sender, but I didn't Hmmm.

Anyway, thanks for your help.

"Chris" wrote:
Rich wrote:
Hello,

I have a group of textboxes where I change the text to lower on leave, but I
am sure there is a more efficient way to do this.

rivate Sub txt1_Leave(...) Handles txt1.Leave
Dim str1 As String = txt1.Text.ToLower
txt1.Text = str1
End Sub

Private Sub txt2_Leave(...) Handles txt2.Leave
Dim str1 As String = txt2.Text.ToLower
txt2.Text = str1
End Sub

Private Sub txtI3_Leave(...) Handles txtIDfld.Leave
Dim str1 As String = txtIDfld.Text.ToLower
txtIDfld.Text = str1
End Sub

Private Sub txt4_Leave(...) Handles txt4.Leave
Dim str1 As String = txt4.Text.ToLower
txt4.Text = str1
End Sub
I think the above can be replaced with something like

Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1

nothing happends. The text in the textbox did not get changed. Any
suggestions appreciated what I could do to make this work.

Thanks,
Rich


Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = DirectCast(sender, TextBox).Text.ToLower
DirectCast(sender, TextBox).Text = str1
End Sub

If you turned on "Option Strict On" at the top of your class you would
have be told about this problem. I recommend always using it.

Chris

Feb 6 '06 #3

P: n/a
"Rich" <Ri**@discussions.microsoft.com> schrieb:
Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1


'DirectCast(sender, TextBox).Text = str1'.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Feb 6 '06 #4

P: n/a
Rich wrote:
Thank you that worked. FYI, I did have option strict on. I did think I
would get a message about sender, but I didn't Hmmm.

Anyway, thanks for your help.

"Chris" wrote:

Rich wrote:
Hello,

I have a group of textboxes where I change the text to lower on leave, but I
am sure there is a more efficient way to do this.

rivate Sub txt1_Leave(...) Handles txt1.Leave
Dim str1 As String = txt1.Text.ToLower
txt1.Text = str1
End Sub

Private Sub txt2_Leave(...) Handles txt2.Leave
Dim str1 As String = txt2.Text.ToLower
txt2.Text = str1
End Sub

Private Sub txtI3_Leave(...) Handles txtIDfld.Leave
Dim str1 As String = txtIDfld.Text.ToLower
txtIDfld.Text = str1
End Sub

Private Sub txt4_Leave(...) Handles txt4.Leave
Dim str1 As String = txt4.Text.ToLower
txt4.Text = str1
End Sub
I think the above can be replaced with something like

Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1

nothing happends. The text in the textbox did not get changed. Any
suggestions appreciated what I could do to make this work.

Thanks,
Rich


Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = DirectCast(sender, TextBox).Text.ToLower
DirectCast(sender, TextBox).Text = str1
End Sub

If you turned on "Option Strict On" at the top of your class you would
have be told about this problem. I recommend always using it.

Chris


Actually you wouldn't get the error now that look at it.
'This line you do a string to a string
Dim str1 As String = sender.ToString.ToLower

This one you assign the object to a string
sender = str1

Both of them are allowed since it is an object.
If you just did:
Dim str1 As String = sender
You'd get an error.

Chris
Feb 6 '06 #5

P: n/a
A better way to do it might be in the KeyAscii event to chane upper case keys
to lower case keys so the user sees only lower case being entered into the
text box.
--
Dennis in Houston
"Rich" wrote:
Thank you that worked. FYI, I did have option strict on. I did think I
would get a message about sender, but I didn't Hmmm.

Anyway, thanks for your help.

"Chris" wrote:
Rich wrote:
Hello,

I have a group of textboxes where I change the text to lower on leave, but I
am sure there is a more efficient way to do this.

rivate Sub txt1_Leave(...) Handles txt1.Leave
Dim str1 As String = txt1.Text.ToLower
txt1.Text = str1
End Sub

Private Sub txt2_Leave(...) Handles txt2.Leave
Dim str1 As String = txt2.Text.ToLower
txt2.Text = str1
End Sub

Private Sub txtI3_Leave(...) Handles txtIDfld.Leave
Dim str1 As String = txtIDfld.Text.ToLower
txtIDfld.Text = str1
End Sub

Private Sub txt4_Leave(...) Handles txt4.Leave
Dim str1 As String = txt4.Text.ToLower
txt4.Text = str1
End Sub
I think the above can be replaced with something like

Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = sender.ToString.ToLower
sender = str1
End Sub

this line seems to work - str1 appears to get the value from sender
Dim str1 As String = sender.ToString.ToLower

But when I try to reapply the new value to sender as below

sender = str1

nothing happends. The text in the textbox did not get changed. Any
suggestions appreciated what I could do to make this work.

Thanks,
Rich


Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)
handles txt1.leave, txt2.leave, txt3.leave, txt4.leave
Dim str1 As String = DirectCast(sender, TextBox).Text.ToLower
DirectCast(sender, TextBox).Text = str1
End Sub

If you turned on "Option Strict On" at the top of your class you would
have be told about this problem. I recommend always using it.

Chris

Feb 7 '06 #6

P: n/a
Rich,

Be aware that there are here two criteria for efficient. It is more
efficient to write and maintain. Therefore I use it forever as showed by
others.

However it is less efficient to process (what is a very very very little
bit).

Cor
Feb 7 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.