Svar Skrevet 29. november 2006 Skrevet 29. november 2006 Heisann Driver å lager et lite program i VB 2005 Express, men har litt problemer. Jeg har et ganske enkelt grensesnitt som består av en knapp, en tekstboks som man ikke kan skrive i og en tekstboks som kan kan skrive i. Planen er at når man skriver inn brukernavn i tekst boksen (ett navn pr linje) og klikker på knappen skal følgene linjer genereres i den andre tekstboksen: "en fast frase" + første navn i listen +"en fast frase +første navn i listen +en fast frase "en fast frase" + andre navn i listen +"en fast frase +andre navn i listen +en fast frase "en fast frase" + tredje navn i listen +"en fast frase +tredje navn i listen +en fast frase osv osv Jeg får fint til at den lager en linje basert på alt som står i tekstboksen, men ikke hatt den skiller mellom linjene. Noen som har noen gode tips?
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 Mulig jeg misforstår men er det rett og slett et linjeskift du er ute etter? I så fall legges det til med å skrive f.eks "strDinStreng & Controlchars.Newline"...
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 (endret) Jeg vil at den skal ta hensyn til linjeskiftene i den tekstboksen som man skal kunne skrive til. Slik ser koden på knappen ut nå: RichTextBox1.Text = "Dette er en" + RichTextBox2.Text + "test" Dette fungerer, men alt fra RichTextbox2.text blir satt inn, ikke bare 1.st linje. Edit: når jeg tenker meg om blir kansje alt man skriver i en tekstbox lest som en linje selv om det ser ut som flere? Jeg kan fikse dette med å lage en boks pr navn som skal skrives inn, men da blir en del av poenget borte. Det skal bli et lite program som setter brukernavn inn i faste settninger for script bruk, men da må det jo finnes en måte å få den til å forstå at det bare er en linje som skal brukes pr setning. Endret 29. november 2006 av Svar
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 Ah! Da forstår jeg mer! Du kan gjøre det slik: Dim strLinjer() as String = RichTextBox2.Text.Split(Controlchars.NewLine) for i as integer = 0 to strLinjer.GetLength(0) RichTextBox1.Text = "Dette er en" & strLinjer(i) & "test" & Controlchars.NewLine Next
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 Prøvde å legge inn all den koden til når man klikker på knappen, men får opp en haug med feilmeldinger: A first chance exception of type 'System.IndexOutOfRangeException' occurred in til filnavn A first chance exception of type 'System.NullReferenceException' occurred in til filnavn A first chance exception of type 'System.IndexOutOfRangeException' occurred in til filnavn A first chance exception of type 'System.IndexOutOfRangeException' occurred in til filnavn A first chance exception of type 'System.NullReferenceException' occurred in til filnavn Er for lenge siden jeg drev med VB ja
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 Det var da som pokker. Controlchars.NewLine er ikke riktig, men jeg klarer ikke finne den riktige split'en...
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 Nå har jeg prøve å legge: Dim strLinjer() as String = RichTextBox2.Text.Split(Controlchars.NewLine) til når form1 lastes også, mener å huske at slike ting var smart å ha i begynnelsen av programmet men da får jeg bare opp feil: Error 3 Name 'strLinjer' is not declared.
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 for-linjen skal iallfall rettes til: For i As Integer = 0 To strLinjer.GetLength(0) - 1
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 Nå får jeg kjørt programmet, men linjene blir ikke lest som en og en. Eks vist jeg skriver dette i tekst boksen: "morsomm dum" blir resultaret: Dette er enmorsomm dum test" mens resulatet skulle blitt: Dette er en morsomm test Dette er en dum test
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 Det er fordi .Split() ikke klarer å splitte skikkelig. Jeg prøver å finne ut hva newline er og har til nå prøvd følgende: Environment.Newline Controlchars.Cr Controlchars.CrLf Controlchars.Lf Controlchars.NewLine Controlchars.VerticalTab ... begynner å gå tom for idéer...
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 Nå har jeg prøvd meg på følgende kode: Dim strLinjer() As String = RichTextBox1.Text.Split For i As Integer = 0 To strLinjer.GetLength(0) - 1 RichTextBox2.Text = "Dette er en" & strLinjer(i) & "test" & ControlChars.NewLine Next men det som skjedde da var at den bruker den siste linjen uansett hvor mange linjer jeg skriver.
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 (endret) Dim m as New Moskus m.IsStupid = True Endret 29. november 2006 av moskus
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 Og jeg er totalt idiot! Koden skal være slik: Dim strLinjer() As String = RichTextBox2.Text.Split For i As Integer = 0 To strLinjer.GetLength(0) - 1 RichTextBox1.Text = RichTextBox1.Text & "Dette er en " & strLinjer(i) & " test" & ControlChars.NewLine Next
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 (endret) Takker det fungerte Men den lager også en tom setning på slutten: "dette er en(ikke noe navn her) test" Den skulle jeg likt at den ikke tar med, men det er ikke så veldig falig Edit: min feil, den la inn den linjen fordi jeg hadde laget en tom linje Nå mangler jeg bare on exit slett programmet fra minnet koden Endret 29. november 2006 av Svar
Moskus Skrevet 29. november 2006 Skrevet 29. november 2006 "Slett programmet fra minnet"? .NET sin garbage collector blir automatisk kallet ved avslutning og rydder pent opp etter programmet ditt. Hvis jeg forstår deg riktig (noe som absolutt ikke er garantert :wink: )
Svar Skrevet 29. november 2006 Forfatter Skrevet 29. november 2006 Takk da vet jeg det. Sist gang jeg brukte VB var versonen før .net utgaven og da fjernet ikke alt seg fra minnet når man lukket det, men fint det har skjedd forbedringer siden den gang
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå