Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Vb.Net proff søges.

Hej Vb.Net Nørder! :D

Jeg sidder her med et problem i Visual Basic 2005 Express Edition.

Jeg sidder og leger lidt med VB.Net , jeg bruger følgende kode til at oprette TextBox via. et tryk på en knap:

  1. Private Sub regn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles regn.Click
  2.         antal += 25
  3.         six += 1
  4.         Me.Height += 25
  5.         Dim dynText As New TextBox
  6.         With dynText
  7.             .Name = "ekstra" & six
  8.             .Top = antal
  9.             .Left = 40
  10.             .Multiline = False
  11.             .Text = "ekstra" & six
  12.         End With
  13.         Me.Controls.Add(dynText)
  14.     End Sub

Det virker også korrekt og de oprettes.

Men senere når jeg vil til at finde værdierne for felterne for at ligge dem sammen, for de er jo oprettet dynamisk og for jo navnene: ekstra1, ekstra2, ekstra3 osv derudad.

Til at aflæse dette bruger jeg:
  1.             While tot < six
  2.                 tot += 1
  3.                 Dim test As String = "ekstra" & tot
  4.                 MsgBox(test, MsgBoxStyle.Critical, "Værdi:")
  5.             End While

Men jeg kan ikke få den til at hente værdien fra feltet, den kan kun hente feltets navn.

Er der nogen som er en haj til VB.Net som kan assistere mig hvad jeg skal gøre ?
For troede jeg bare kunne skrive test.Text bagefter, men så kommer følgende fejl: 'Text' is not member of 'String' ..

Så lidt assistance vil være skønt.

tak på forhånd.

Nej, VB6 og VB 2005 Express er IKKE det samme. VB 2005 har .Net syntax og det har VB6 ikke ..

Pointfordeling

Forfatteren har lukket tråden og har valgt at fordele de 50 point således:
deXo-fan 50 point
Oprettet af:

.NET

Point afsat: 50

Lukket
00:12 07/10/2007
Du bliver naturligvis nødt til at forklare, hvad de forskellige variabler indeholder/bruges til. Og så ville det være guld være med hele din kode. Og så lige et personligt spørgsmål, som du selvfølgelig ikke behøver svare på: Hvorfor har du valgt VB, og ikke C#?
Oprettet af:

Kommentar
12:11 07/10/2007
Humm, syntes bedre om Vb.Net end C#, selvom der nok er mere fremtid i C# end i Vb.Net.

Her er hele min kode,

  1.     Private Sub regn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles regn.Click
  2.         antal += 25
  3.         six += 1
  4.         Me.Height += 25
  5.         Dim dynText As New TextBox
  6.         With dynText
  7.             .Name = "ekstra" & six
  8.             .Top = antal
  9.             .Left = 40
  10.             .Multiline = False
  11.             .Text = "ekstra" & six
  12.         End With
  13.         Me.Controls.Add(dynText)
  14.     End Sub


  15.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  16.         Dim totVal As String = 0
  17.         Dim typen As String
  18.         Dim Valuen As String = 0
  19.         typen = ComboBox1.SelectedItem

  20.         If typen = "Parallel Forbindelse" Then
  21.             MsgBox(typen, MsgBoxStyle.Critical, "Test")
  22.         End If

  23.         If typen = "Serie Forbindelse" Then

  24.             MsgBox(typen, MsgBoxStyle.Critical, "Test")
  25.             While tot < six
  26.                 tot += 1
  27.                 Dim test As String
  28.                 Dim test2 As String
  29.                 test = "ekstra" & tot
  30.                 test2 = test
  31.                 MsgBox(test2, MsgBoxStyle.Critical, "test")
  32.             End While
  33.             tot = 0
  34.         End If


  35.     End Sub

Det er vel til at aflæse hvilke der indeholder hvad ?

Mit problem ligger i at jeg ikke kan få værdierne fra strengen "test", altså normalt henter man en værdi: box3.Text , det henter indholdet af box3.
Men det vil den ikke tillade mig ..
Oprettet af:

Kommentar
13:25 07/10/2007
Du kan ikke få indholdet i TekstFelt.Text vha. en streng. Så skulle man kunne konvertere strenge til objekter og 'members', og det lader sig kun gøre i et "let" sprog, fx. PHP. Men du kan vel have et array, hvori du har de forskellige tekster.

Jeg tror bestemt også, der er mere fremtid i C#. VB.net er, som MS selv beskriver det, 'first time programming'. Og det virker 'tungt' at skulle skrive Begin, Then, End, Dim osv, fremfor at bruge { og } IMO.
Oprettet af:

Kommentar
19:47 07/10/2007
Hvis jeg har et statisk felt med name = "radiu" , så kan jeg hente dens værdi på følgende måde:

  • Dim radius as String = radiu.Text

Nu vil jeg gerne ha det smeltet sammen med mit nye script, som indeholder dynamiske textboxe, og de angives i name via en while løkke så de får navnet:
  • name = "ekstra" & tot

men prøver jeg så at hente den via

navn = name.Text

Så kommer følgende fejl:

'Text' is not a member of 'String'/'Integer'/'Double'

alt efter hvilken slags jeg vælger ..

Der må være en Workaround på dette ?
Oprettet af:

Kommentar
21:39 07/10/2007
Det er jo klart, den siger det. name er jo en streng, ikke et tekstfelt, så name indeholder ikke Text-objektet. Og hvis name endelig var et tekstefelt, og ikke en streng, så skulle du skrive

  • name.Text = "ekstra" & tot

Udover det, så ser det underligt ud med &-operatoren til at sammensætte strenge. Er du sikker på, den ikke hedder '+'?
Oprettet af:

Accepteret svar

Point modtaget: 50
12:19 08/10/2007
Hvis jeg skriver '+' opfatter den det som en operator, altså, som et adder tegn.. Sådan så den ligger dem sammen, i .Net syntax anvendes '&' til at sammensætte strenge og tekst.

jeg prøver det du skrev ..
Oprettet af:

Kommentar
12:22 08/10/2007
Hvis jeg skrivesr name.Text = "ekstra" & tot , så siger den samme fejl, at 'Text' ikke er et member af 'String'.
Oprettet af:

Kommentar
12:22 08/10/2007
Det er det jo heller ikke :) Du skal netop IKKE prøve det jeg skrev. Jeg skrev ikke svaret, jeg forklarede bare dit problem. Du bliver nødt til at gribe det an på en anden måde. Det er kun i PHP, man kan snørkle sig til sådanne løsninger.

Både & og + er operatorer. I sprog som JavaScript og Delphi betyder + både addérring af tal og sammentrækning af strenge. Der er ikke noget, der hedder '.NET syntax'. .NET er jo ikke ét bestemt sprog.
Sidst redigeret 14:35 08/10/2007
Oprettet af:

Kommentar
14:34 08/10/2007
Du skal være oprettet og logget ind for at svare på en tråd
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes