Multidesk.be » Forums » .Net » Visual Basic auto refresh form (gesloten)

Helpinformatie
Dit onderwerp werd gesloten.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Ezio op zaterdag 2 februari 2013 om 20:51:11.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hey,

Aangezien het bijna essentieel is om te downloaden in de groene zone's van telenet, klik hier voor meer info, ben ik bezig met een progje te ontwerpen die je aantoont in welke zone je je momenteel bevindt.
De systeemtijd (huidige tijd van je pc dus) blijft bij mij echter constant hetzelfde, daarom zou mijn form zichzelf constant moeten refreshen.
Wie weet hoe dit moet?
Alvast bedankt !!

P.s. Ik ben nog een redelijke noob in Programmeren (studeer het nog maar sinds begin dit schooljaar).
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #1 geschreven door Ezio op zaterdag 2 februari 2013 om 21:05:46.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik heb nu dit gedaan:
- een timer aangemaakt met interval 10
- code achter timer:
CODE
  1. Me.Form1_Load(sender, e)
  2. Me.Show()

Nu lijkt alles te werken:)
De code heb ik echter te danken aan een beetje gegoogel en ik ben nu eenmaal iemand die niet tevreden ben met het feit dat het werkt zonder dat ik perfect doorheb wat ik heb gedaan. Zou iemand me daarom kunnen uitleggen wat 'Me.form1_Load(sender,e) juist doet?
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #2 geschreven door thekid op zaterdag 2 februari 2013 om 23:46:40.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
niets speciaals hoor :)

de Me verwijst in Vb.net naar de form (venster) zelf

de Form1_Load(sender, e) staat voor :
- laad de form
- sender is een object die verwijst naar welk object het bericht verstuurde
- de e zijn de argumenten die gebruikt werden om de functie op te roepen (een gewone EventArgs)

de Show():
- toont het venster

wat je hier eigenlijk doet zou in theorie de IDE voor u moeten programmeren, dus volgens mij klopt uw code niet :)

ik ga er in deze zin dus vanuit dat:
- je alle code om de tijd te wijzigen in de form1_load hebt geschreven, dit is echter niet de correcte plaats voor de code (de load zou in theorie maar 1x opgeroepen moeten worden per form

Aangezien je form er al staat (na de eerste start van het programma) moet je de Me.Show() dus ook niet herhalen :)

waarom werkt het nu wel:
- omdat je in uw load de code hebt die uw timer veranderd

beter zou zijn:
- een procedure te schrijven die de aanpassingen doet buiten de Form1_Load
- de show niet te herhalen (als die er staat is de show sowieso een null operatie, een nutteloze oproep :))

dus, kan je het beter aanpassen naar:
CODE
  1. Sub RefreshTime()
  2.     lblTime.Text = string.Format("{0:HH:mm:ss}", DateTime.Now)
  3. End Sub


en in je Form1_Load
CODE
  1. call RefreshTime()


en in je Timer_Tick
CODE
  1. call RefreshTime()


waardoor je dus uw code kunt hergebruiken, je kan dan ook een button zetten die alles refreshed op uw aanvraag, en enkel de oproep te doen naar RefreshTime

wat meer info over date time:
http://www.dotnetperls.com/string-format-vbnet

en

http://msdn.microsoft.com/en-us/library/fht0f5be%28v=vs.80%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

verder, een interval van 10, staat voor iedere 10 milliseconden roep je de intervalcode opnieuw op, dit is zeer klein als je weet dat je slechts iedere seconde een verandering zult zien :)

je kan dan beter iedere 1000 ms (iedere seconde refreshen) de interval laten herhalen, of als je echt geen seconden wenst te missen, kan je het op 500 ms zetten (2 maal per seconde refreshen), of je wilt het gewoon iedere minuut herhalen dan 60000 ms instellen, etc... :D
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #3 geschreven door Ezio op zondag 3 februari 2013 om 00:16:52.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Zoooo hartelijk bedankt voor de info !!!
Het is nu perfect aangepast :D
Mijn progje werkt in het algemeen jammergenoeg nog altijd niet.
Daarom, zou je hier even naar kunnen kijken om te zien waar het schoentje knelt (wanneer je eens zin en tijd hebt natuurlijk ;) )

Ik weet dat de code er veel simpeler uit zou kunnen kiezen (door cases te gebruiken enzo) maar soit, zo gevorderd ben ik nog niet :p

Bedankt !!!
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #4 geschreven door thekid op zondag 3 februari 2013 om 00:31:46.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Wel, je kan alle code in je form load versluizen naar de refresh time, behalve dan de activatie van de timer en de call naar refresh time :D

tevens kan je ook arrays gaan gebruiken, maar dat laat ik je morgenavond wel zien.

"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #5 geschreven door Ezio op zondag 3 februari 2013 om 00:33:00.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Prachtig :D
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #6 geschreven door thekid op zondag 3 februari 2013 om 21:31:44.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Zo Ezio,

bekijk eens volgend voorbeeld (het is gemaakt in SharpDevelop, maar je zou het perfect moeten kunnen openen met visualstudio ook :))

Vragen staat vrij, maar doe eerst je best om alles te verstaan :-)

Bijlage: 059516d20e97349620e47ca84458abab.zip
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #7 geschreven door Ezio op zondag 3 februari 2013 om 22:29:15.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Bedankt bedankt bedankt !!! :D
Na wat opzoekwerk begrijp ik nu volledig wat je precies gedaan hebt ;)
Ga nu een balloontip invoegen die me aantoont wanneer ik de Green Zone binnenga :)
Nogmaals bedankt !
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #8 geschreven door thekid op zondag 3 februari 2013 om 22:51:56.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
graag gedaan, en veel succes ermee :)

je zal later ook wel zien dat je opzoekwerk ook voordelen oplevert, je ziet andere standpunten en je hebt voor het eerst een voor u onbekende code geanalyseerd :)

er zullen vermoedelijk ook dingen ingezeten hebben dat je tot nu toe nog niet gezien hebt :) maar dat hoeft niet noodzakelijk negatief te zijn, programmeren is constant bijleren :)
Deze tekst werd het laatst bewerkt voor 0.78 % door thekid op zondag 3 februari 2013 om 22:56:57.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten