Таймер във VB.NET

2 отговора 42 прегледа
#1

Таймер във VB.NET

Ето проблема. Пиша следния таймер:

Imports System
Imports System.Threading
Imports System.Timers

Private Sub EnableTimer(ByRef iInterval As Integer)

'Create the timer
Dim aTimer As System.Timers.Timer
aTimer = New System.Timers.Timer

AddHandler aTimer.Elapsed, AddressOf OnTimer

aTimer.Interval = 100
aTimer.Enabled = True

End Sub


Public Sub OnTimer(ByVal source As Object, ByVal e As ElapsedEventArgs)

Me.Refresh()

End Sub

При всяко запалване на таймера обаче се чисти предната страница и се представя само новата. Представете си, че искате да изпишете непрекъсната крива на екрана, състояща се от отделни точки, чиито стойности се получават от някакво външно устройство при всяко запалване на таймера. С горния таймер, при представяне на екрана на всяка точка, предишната точка се изтрива. И така се получава само една единствена движеща се през екрана точка. Целият проблем изглежда е да се замени това Me.Refresh() горе с нещо, което да не трие предния екран. Опитах какво ли не, но нищо не върши работа – нито Me.Show(), нито, разбира се, Me.Invalidate() нито нищо. Не става и не става. Някой има ли идея как може да се реши този проблем?

Отговор
в отговор на VB.NET #2

Re: Таймер във VB.NET

She si pazish dannite v masiv i ste si gi risuvash na Paint eventa.
Ostatyka go pishe v helpa. :)

Отговор
в отговор на VBProgrammer #3

Re: Таймер във VB.NET

Много благодаря. Така се получи, че тъкмо го направих и ти отворих постинга. Благодаря все пак. Решението е наистина много просто. Просто решение има и въпросът, който зададох в един друг постинг за това как да направим стойностите на масив общи за всички форми. Ами, просто ги обявяваме Public в модула. Направих го и по един измъчен начин с data structure, но така с модула е много елегантно.

Отговор