Computer RelatedAre you going to build your own computer, or want advice on laptops, notebooks, monitors, processors, motherboard, software, computer games, etc. Discuss all things computer, or seek help from our resident geeks!
Welcome to ScoobyNet.com!
Welcome to the ScoobyNet.com Subaru forum.
You are currently viewing our forum as a guest, which gives you limited access to view most discussions and access our other features. By joining our community, at no cost, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is free, fast and simple, so please join our community today!
If you have any problems with the registration process or your account login, please contact contact us.
I've been using VB6 until recently as saw no benefit in attempting to move existing projects over.
However, I am now on a new one and we need to use a supplied .NET component, so I'm now forced into getting used to VB.NET
I have a probably stupid problem (if you know .net) but I have a sub in a form module which references a button. For the sake of arguement let's say the sub is passed "strText", and a button id and it sets this buttons text as strText. So I have:
Code:
Public Sub CreateMapButton(ByVal strText As String, ByVal buttonid As Integer)
Dim theButton As Button
Diagnostics.Debug.Print("Creating button """ & strText & """ (buttonid=" & buttonid & ")
If buttonid = 1 Then
theButton = butMap1
elseif. buttonid......
End If
theButton.Text = strText
theButton.Visible = True
Diagnostics.Debug.Print("Finished creating button")
End Sub
if I call this from another button in the form:
Code:
CreateMapButton("Test button", 1)
Then sure enough the text is set on the first button and the debug printout is as expected.
Now I have a function in another module which loads up a list of texts for said buttons from the database and then calls the sub above for each one. This prints the debug out as expected, but the button caption never changes.
This would work fine in vb6 (although yes I know the if - then - blahh to set the button control is a bit rubbish, this is only a lightweight in-house app).
Why is .NET being an arse and not changing the button properties when the sub is called from a proceedure which is external to the form?
We still use VB, however our apps are being re-written in .NET (mainly C# rather than VB.net though).
Anyway, for many software houses, it simply may not be cost effective to port to .NET without serious financing. If it ain't broke, don't fix it etc. Bit like running an old car, plenty do it.
When you say another module, I take it you mean another class, if so,
reference the called class in the calling class to expose the function, create an instance of the class if it's not static and you should be good to go.
Coming from a VB 5.0/6.0 and Delphi background myself, i can well assure you, 6 years into .NET, it rocks.
If this is not helpful, please send me your code and I'll have a look. I'm off to Prague tomorrow so i may not check it till weekend.
Just making a quick little test app to send and i notice 2 warnings which will hopefully make more sense to someone who knows what they are doing. Such a pain, VB6 was great for just knocking up apps for at work!!
It should change the text on the button itself. The fact the debug prints out fine is what i dont understand, everything is running through as it should. The button text just never gets changed!! LOL
The text will not change until an event has been raised for that control.
If you add the text change command within the butMap1 click event, it will be actioned, to do so from Loadmap event, I think you'll need to raise the event through the use of 'delegate'.
If this has not been resolved by lunch time, let me know and I'll have another play around.
I'm having problems. I see where the articles are coming from but I'm struggling to understand how to relate that to my simple bit of code that works in VB 6 - it shouldnt need events raising its just one sub calling another.
it's ok I've now narrowed it down to being the "Dim frm As New WindowsApplication1.Form1" in the module function. This can be removed fine in my sample one. But remove it in the real one and you cant find the CreateMapButton grrrrrrrr
I think it might be related to me changing the name on the form. I'll have a play.