Gå til innhold

[VB 2008] Popup/toast informasjon - noe msn lignende problem.


Gjest

Anbefalte innlegg

Skrevet

Hei!

 

Har slik popup/toast som msn har når folk logger på eller sender melding.

Problemet er at når jeg gjør en handlig 2-3 ganger etterhverandre kommer det slik det etterhverandre oppover skjermen.

post-97221-1259934927_thumb.png

 

Koden jeg bruker da:

	   If (Not Label1.Text = "Stopped" And Not spotify.Nowplaying = "" And spotify.ProcessesRunning("spotify") = 1) Then
		Dim MittArray() As String = Split(spotify.Nowplaying, "–")
		Dim slice As New ToastForm(2000, MittArray(0) & vbNewLine & MittArray(1))
		slice.Show()
	Else
		Dim slice As New ToastForm(2000, "Stopped")
		slice.Show()
	End If

Noen måte jeg kunne hatt slik at det bare er EN slik form i hjørne nederst som bare jeg endre label på? Slik som Toastify har?

Toastify: toastify.jpg

Videoannonse
Annonse
Skrevet

Hva med å ikke opprette en å enten lukke den gamle toasten før du åpner ny? eller bare bruke den allerede eksisterende toast formen?

Skrevet

Det er faktisk vanlig at slike toasts "stacker" seg oppå hverandre når det kommer flere. MSN gjør det på samme måten.

Det du evt kan gjøre er å gå via en kø, slik at istedet for at meldingen går direkte til funksjonen som dytter den til skjermen, så går den via køen. Funksjonen som skriver til skjermen sjekker da køen, viser en melding, venter, fjerner meldingen, sjekker køen.

Evt kan du istedet for å fjerne og poppe ut på nytt bare fade over i den andre beskjeden...

 

-C-

Skrevet (endret)

Noen med eksempel til løsning?

 

EDIT:

Toastify har lagt ut kildekode! Så de med litt C#/C++ erfaring har kanskje mulighet for å hjelpe meg:

Siste versjon per Idag!

Endret av Gjest
Skrevet

Som brgr sier, er vel den mest åpenbare løsningen å bruke en form i stedet for å lage en ny hele tiden.

 

Lag formen et annet sted, og bruk den if-en din til å sette på riktig tekst og vise formen på nytt.

Skrevet

Din kode:

 

If (Not Label1.Text = "Stopped" And Not spotify.Nowplaying = "" And spotify.ProcessesRunning("spotify") = 1) Then

Dim MittArray() As String = Split(spotify.Nowplaying, "–")

Dim slice As New ToastForm(2000, MittArray(0) & vbNewLine & MittArray(1))

slice.Show()

Else

Dim slice As New ToastForm(2000, "Stopped")

slice.Show()

End If

 

 

 

En prosedyre som muligens vil virke.

 

 

Private slice As Toastform

Sub ShowToast(ByVal txt As String)

If slice IsNot Nothing Then

If slice.Visible Then slice.Close()

slice = nothing

End If

slice = New ToastForm(2000, txt)

slice.Show()

End Sub

 

 

Når du skal bruke toast vinduet. Caller du bare ShowToast med parameter tekst.

 

Prøv å erstatt din kode med følgende:

 

 

Dim ToastText As String = _

IIf((Not Label1.Text = "Stopped" And Not spotify.Nowplaying = "" And spotify.ProcessesRunning("spotify") = 1), Split(spotify.Nowplaying, "–")(0) & vbNewLine & Split(spotify.Nowplaying, "–")(1), "Stopped")

ShowToast(ToastTxt)

 

 

  • 1 måned senere...
Skrevet

En stund siden jeg så på denne tråden, men takk Brgr! Det løste problemet :)

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...