Toon posts:

[VB 2005] Gewijzigde tekst label opslaan in project

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een project aangemaakt. Ik heb nu een stuk code dat later controleert of de tekst van een label met een hoofdletter begint en de rest kleine letters bevat. Wanneer dit niet het geval is wordt de tekst aangepast. Nu wil ik de aangepaste tekst opslaan in het project, zodat ik later niet weer deze check moet uitvoeren. Hoe kan ik dit doen?

De check zelf gaat prima, maar het opslaan van de tekst in het project niet. Wanneer ik het project daarna opnieuw run moet ik dus nu de check weer opnieuw doen.

De check:
code:
1
2
3
4
5
6
7
Dim cControl As Control
        For Each cControl In Me.Controls
            If (TypeOf cControl Is Label) Then
                cControl.Text = cControl.Text.ToString.Substring(0, 1).ToUpper &   Control.Text.ToString.Substring(1).ToLower
              
            End If
        Next cControl


Ik heb al gezocht op GoT, MSDN en google maar kan hier (nog) geen oplossing voor vinden. Weet iemand hier een oplossing voor?

  • KoW
  • Registratie: Juli 2001
  • Laatst online: 17-08-2022

KoW

Parse parsed te veel

je doet dit nu live (tijdens runtime)
je zal met een soort projecthook door je project moeten lopen.
Dus niet in de code van je object zelf.

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Wat je nu waarschijnlijk doet is
1) de Text-properties van je textboxen e.d. vanuit Visual Studio vullen met tekstwaarden.
2) Wanneer je het form opent wordt de tekst in elk van deze controls veranderd zodat het netjes met een hoofdletter begint en de rest in kleine letters getoond wordt.

Realiseer je dat je bij stap 1 de standaardwaarden opgeeft - deze worden in je programma meegecompileerd omdat dit de tekstwaarden zijn waarmee je programma moet beginnen.

Nu is het zo dat je vanuit je programmacode geen standaardwaarden kunt veranderen. Je kunt wel de huidige inhoud van je controls veranderen (zoals je bij stap 2 doet), maar niet de waarden aanpassen waarmee het programma de volgende keer mee moet beginnen (omdat je programma dan 'zichzelf' zou moeten veranderen).

De ('een') oplossing is om de inhoud van je controls weg te schrijven naar een bestand, en deze de volgende keer als het programma start weer in te lezen, en aan de hand van de teruggelezen informatie de waarden van je controls weer te veranderen.
Hiervoor zou je xml-bestanden kunnen gebruiken, maar om te beginnen is het makkelijker om te kiezen voor het wegschrijven van een tekstbestand met op elke regel de text-property van een control.

Kijk hiervoor eens naar de StreamReader en StreamWriter classes (in de System.IO namespace). Deze zijn bedoeld om eenvoudig tekstbestanden weg te schrijven en in te lezen.

Verwijderd

Topicstarter
Ik heb nagedacht over het halen van de info uit een tekstfile. Het is misschien wel een optie die ik ooit ga gebruiken maar ik zou nu graag de tekst van de labels in het project aanpassen.

Zo'n 'projecthook'... hoe werkt dat ongeveer?

En wat is de allereerste event van een applicatie. Zodat ik misschien vooraf de labels kan aanpassen (dus eigenlijk als de applicatie nog aan het starten is).

extra info:
Ik heb al geprobeerd om het in sub main uit te voeren, dus voordat het eerste scherm wordt opgestart, maar dan wordt gewoon bij het starten van het formulier de oorspronkelijke tekst uit de labels teruggezet.

[ Voor 21% gewijzigd door Verwijderd op 08-05-2007 16:38 ]