NAVIGATIE

Freetime overzicht
Zoeken


  RUBRIEKEN

FAQ / Help
Wat mag niet?
WZL Wedstrijden
WZL Chat
WZL Toolbar
WZL Statistieken
WZL leden
WZL shop
E-cards

RSS

Fun-feed
Babe-feed
Stud-feed

Een groot aantal pokerrooms geven de mogelijkheid om poker te spelen op internet en geld te storten via het veilige iDeal betaalsysteem.
Overzicht » Computer » Programmeren » Veranderen van inhoud textfield vanuit een andere class in VB.NET
Onderaan pagina
gemas 3.244
wzl-lid
Sinds 16/3/2004
T: 11 R: 9
30/1/2007 - 12:54u | Quote
Ik heb een probleempje

Ik probeer het zo simpel mogelijk uit te leggen.
Ik heb in vb.net een form "Form1.vb".
Ik heb een andere class "VeranderText.vb".
De bedoeling is dat in in de class "VeranderText.vb" de inhoud van de label "TestLabel" verander in "Form1.vb".

Kan iemand mij hiermee helpen?
Bedankt

(Voor de mensen die zich afvragen wrm dit dient. VeranderText is de class die ik oproep van uit een thread, maar ik zou de resultaten van die thread laten willen zien in een textfield)


stalin 3.568
wzl-lid
Sinds 14/10/2004
T:14 - R:369
30/1/2007 - 13:36u | Quote
zonder thread is dit zeer simpel.
In uw klasse doe je gewoon:

public shared sub VeranderTekst()
Form1.Label1.Text = "nieuwe tekst"
end sub


Het probleem is nu dat je van een thread normaal gezien (ik kan mij natuurlijk vergissen) die tekst niet zomaar zal kunnen veranderen zonder een cross-thread exception te krijgen. Dit komt omdat een control op de mainthread van het programma zit en je daar niet zomaar aankan. Ik zou eens moeten kijken hoe het dan wel gaat, maar met delegates is het wat foefelen met me.invoke() enzo. Maar misschien lukt dat met threads dus wel rechtstreeks al betwijfel ik dat.
gemas 3.244
wzl-lid
Sinds 16/3/2004
T:11 - R:9
30/1/2007 - 14:15u | Quote
Het is mij gelukt voor de mensen dat het interesseert

In form1.vb heb ik de volgende code
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim andereclass As New VeranderText
andereclass.setform(Me)
andereclass.settextForm()
End Sub

En in de Class VeranderText is
Public Class VeranderText
Dim frm As Form1

Sub setform(ByVal form As Form1)
frm = form
End Sub

Sub settextForm()
frm.TextBox1.Text = "gelukt"
End Sub

End Class

nu werkt het
Bedankt toch voor de mensen die dit gelezen hebben
Wimpie 2.5
wzl-lid
Sinds 24/9/2004
T:39 - R:152
30/8/2007 - 16:47u | Quote
hmm Heb zo mijn twijfels bij deze code...
Het gaat idd wel werken want je klasse kent je form en dus ook je textbox MAAR je geeft wel telkens heel je form door. maw, je heeft veeeel te veel informatie aan je klasse, hij moet niets weten van je form, hij moet enkel het textvak kennen.

Waarom niet gewoon:

in uw form:

als er op de knop geklikt wordt:
dim klasse as new VeranderText()
klasse.setText(txtTextbox)


je kan deze 2 regels natuurlijk ook gewoon zetten als: new VeranderText().setText(txtTextBox)

en dan in uw klasse VeranderText.vb

public sub setText(ByRef txtTextBox)
txtTextBox.Text = nieuwe text
End Sub


Je kan ook ipv ByRef ByVal gebruiken maar in dit geval lijkt me ByRef beter. In feite zeg je nu gewoon tegen de de klasse "verander de text eens van dit veld (het veld dat je meegeeft)" De ByRef maakt het nog iets performanter omdat het veld niet helemaal wordt meegegeven naar de klasse, er wordt gewoon een verwijzing gemaakt.
Quagmire 3.748
wzl-lid
Sinds 18/11/2003
T:62 - R:1458
30/8/2007 - 20:39u | Quote
Da's wel tof, dat ge zo 7 maanden na datum nog effe in deze topic iets komt zeggen
Wimpie 2.5
wzl-lid
Sinds 24/9/2004
T:39 - R:152
30/8/2007 - 21:18u | Quote
K weet het

Maar een hele form doorgeven om 1 veld in te vullen vond ik een beetje overdreven.
Ge moet iets doen om nie in slaap te vallen op't werk he!
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T:108 - R:883
23/10/2007 - 19:46u | Quote
gewoon alles public maken en het probleem is opgelost
Quagmire 3.748
wzl-lid
Sinds 18/11/2003
T:62 - R:1458
23/10/2007 - 20:01u | Quote
dannyboy schreef:
gewoon alles public maken en het probleem is opgelost



Nu gaat die kerel dat eindelijk opgelost krijgen..... 9 maanden zit hij daar ondertussen al op te zoeken.... (zie datum topic) ..... maar dankzij dannyboy ...........

Laatst aangepast door Quagmire op 23/10/2007 20:01:21u (1x aangepast)
m0rPh3uS 3.172
WZL-lid
Sinds 13/1/2003
T:1 - R:38
24/10/2007 - 16:57u | Quote
Quagmire schreef:
dannyboy schreef:
gewoon alles public maken en het probleem is opgelost



Nu gaat die kerel dat eindelijk opgelost krijgen..... 9 maanden zit hij daar ondertussen al op te zoeken.... (zie datum topic) ..... maar dankzij dannyboy ...........

Mja en dan nog met de meest ranzige oplossing ooit
Zubzub 2.604
wzl-lid
Sinds 30/7/2005
T:2 - R:176
29/10/2007 - 23:16u | Quote
dannyboy schreef:
gewoon alles public maken en het probleem is opgelost

kwestie van encapsulation ff uit het raam te gooien, maja tis vb.net so who cares
 
Bovenaan pagina