|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
how to group similar events?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 Rich wrote:
Show quoteHide quote > Hello, Private Sub onLeaving(ByVal sender As Object, ByVal e As System.EventArgs)> > 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 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 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. Show quoteHide quote "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 > Rich wrote:
Show quoteHide quote > Thank you that worked. FYI, I did have option strict on. I did think I Actually you wouldn't get the error now that look at it.> 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 >> '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 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. -- Show quoteHide quoteDennis 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 > > "Rich" <R***@discussions.microsoft.com> schrieb: 'DirectCast(sender, TextBox).Text = str1'.> 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 -- M S Herfried K. Wagner M V P <URL:http://dotnet.mvps.org/> V B <URL:http://classicvb.org/petition/> 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
Lock statement in C#, Is there an equivalent in VB.NET?
For each 2nd Post: Problem adding events to controls created at run-time KeyUp + KeyDown Event Handler Calculate elapsed time Multiple threads using a shared printer resource Problems with ByRef parameters Help needed on creating Shared Directory progress bar convert text to access mdb |
|||||||||||||||||||||||