Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-18 19:26:13 - Alexander Zetterlund, i forum vb.net, Tråden har 18 Kommentarer och lästs av 802 personer

Hur får man sitt program att lägga sig där?

/Alexander


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-18 19:35:30 - Fredrik Normén

Du använder dig av System.Windows.Forms.NotifyIcon

<code>

Friend WithEvents notifyIcon1 As System.Windows.Forms.NotifyIcon

Public sub New()

Me.notifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components)

'Ikonen som ska visas
notifyIcon1.Icon = New Icon("appicon.ico")

'Om du har en context menu du vill koppla på ikonen
notifyIcon1.ContextMenu = Me.yourContextMenu

'texten som ska visas i tooltip
notifyIcon1.Text = "Mitt Program"

notifyIcon1.Visible = True

End Sub
</code>

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-18 20:56:34 - Alexander Zetterlund



Funkar kanon! TACK!

Hur kollar man om NotifyIcon är 'Sender'

<code>

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

'Hur kollar man om NotifyIcon är 'Sender'

e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.ShowInTaskbar = True
Me.Visible = True

End Sub


Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

Me.Close()

End Sub

</code>


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-18 23:10:17 - Fredrik Normén

Du kontroller om seneder är av typen NotifyIcon.

Va ett tag sedan jag programmerade VB men något likt dettaa kan kanske fungera:

<code>
if TypeOf sender Is NotifyIcon then
</code>

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 11:23:54 - Andreas Hillqvist

Borde det inte vara MenuItem1 som blir sender? efter som det är ju dess event som anropar close metoden?


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 12:01:34 - Johan Normén

Syftar du på denna? "Form1_Closing" denna utförs då du stänger Form fönstret.

Closing eventet triggas när du ex gör en me.Close() vilket gör att Sender blir
dem del som utför close. I detta fall är det bara Form1 som kan bli Sender
då det är den som ropar på Closing eventet. Om du inte sett till att NotiFyIcon eventen skall trigga Form1_Closing... Men av koden att bedömma är det bara Form1 som kommer att trigga Form1_Closing.

//Johan N




Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 12:12:30 - Fredrik Normén

japp det har du rätt i, att det är MenuItem1 som blir sender till sina egna events.
Medans NotifyIcon blir sender till sina egna events. Men, man kan ha kopplat på ett event extra på NotifyIcon som tex anropar close och då blir sender NotifyIcon. Tex om man dbl klickar på NotifyIcon så kanske man lägger till att klicket ska trigga ett close event som tex form använder sig eller annat, och då blir den som triggar eventet sender.

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:12:47 - Alexander Zetterlund


<code>

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing GICK EJ ATT HA I.DBL_CLICK

'Hur kollar man om NotifyIcon är 'Sender'

If TypeOf sender Is NotifyIcon Then

e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End If

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.ShowInTaskbar = True
Me.Visible = True

End Sub


Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

Call Form1_Closing(I, ???) VAD SKALL DET VARA HÄR!!!

End Sub


</code>


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:17:21 - Johan Normén

"Call Form1_Closing(I, ???) VAD SKALL DET VARA HÄR!!! "

me.Close()

//Johan N






Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:24:10 - Fredrik Normén

Gör följande:

<code>
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.ShowInTaskbar = True
Me.Visible = True

End Sub


Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

'Call Form1_Closing(I, ???) VAD SKALL DET VARA HÄR!!!
Me.Close() '<---- Denna rad kommer att anropa din Form1_Closing event. Om Me är Form1 objektet.

End Sub
</code>

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:28:32 - Alexander Zetterlund

Fattar inte...

Men om det är så här du menar så larmar det på ...they don´t have the same signature


REV: Såg ditt inlägg nu som är över.

REV2: Det är jag med på men jag vill bara avsluta programmet om jag dubbel-clickar på NotifyIconen. Om man trycker på "X" så skall formen gömmas och aktiveras när man enkelklickar på notify.

Måste avgöra vem som är sender i Closing?

<code>


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing, I.DoubleClick

'Hur kollar man om NotifyIcon är 'Sender'

If TypeOf sender Is NotifyIcon Then

e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End If

End Sub

</code>



Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:34:43 - Johan Normén

Saken är den att när du trycker på X så anropar du enbart Form1_closing eventet,
när du kör din dubbelklick kör du först Dubbelklick evetnetet och sedan Form1.Closing.
Det betyder att du vid dubbelclick eventet skriver in vad du vill skall hända.

//Johan N




Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:42:04 - Alexander Zetterlund

TACKAR!!!


Nu ramlade polleten ner!

GLAD MIDSOMMAR!


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:45:18 - Fredrik Normén

Ok, då kan du använda dig av Form.Show för att få focus och Form.Hide för att gömma formen. Tänk på att denna kod måste ligga i din Form klass.

tex:

<code>
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

e.Cancel = True
Me.Hide()

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.Show()
' Ev Me.Activate()

End Sub

</code>

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:51:29 - Alexander Zetterlund

men...

När jag anropar me.close körs ju Form1_Closing och då sätts alltid e.Cancel = True och då avslutas ju ALDRIG formen.


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:59:47 - Fredrik Normén

Det löser du med Application.Exit() den triggar inte Closing.

/Fredrik N


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 15:59:56 - Johan Normén

"jag vill bara avsluta programmet om jag dubbel-clickar på NotifyIconen.
Detta bryter lite mot klassika användargränsnitt. Oftast vill man öppna något via dubbel klick. Så Jag personligen tycker du skall göra så att när man trycker höger musknapp på NotifyIconen kommer det upp en meny med en Close metod, som
då Anropar ditt Closing Event.

"Om man trycker på "X" så skall formen gömmas och aktiveras när man enkelklickar på notify. "
Med denna lösning kan du aldrig döda din applikation. Eftersom X alltid kommer att
anropa Form1_closing vilket är nödvändigt för att kunna döda din applikation.

Vad du kan göra är Att du bara kör en Notifications icon med meny och funktion vid dubbelklick, Sedan öppnar du ett nytt form med funktionaliteten, detta form kommer då ha sin egna close, vilket gör att när du trycker på X så kommer bara det formet att stängas och notifications iconen finns kvar. Är du med?

Form1 = visar bara Notifications iconen. Du har en me.Close på denna då du vill stänga den. Vill du öppna ett form skapar du ett nytt som du öppnar som har sin Closing funktionalitet.

Eller använda Application.Exit()

//Johan N




Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 16:07:09 - Alexander Zetterlund

Så här ser det ut.

Men man får nog tänka om och ha flera Forms...som du skriver.



<code>

Public WithEvents I As System.Windows.Forms.NotifyIcon

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


I = New System.Windows.Forms.NotifyIcon()

I.Icon = New Icon("icon1.ico")
I.ContextMenu = Me.ContextMenu1 'Meny för att AVSLUTA programmet.
I.Text = "Mitt Program"

I.Visible = True


End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

If TypeOf sender Is Form1 Then 'Då skall man bara gömma den.

e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End If

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.ShowInTaskbar = True
Me.Visible = True

End Sub


Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

OM MAN SKRIVER APPLICATION.CLOSE HÄR SÅ BLEV DET SOM JAG VILLE.
MEN ÄR DET RÄTT ATT GÖRA SÅ!!!

Me.Close() 'Triggar Form1_Closing

End Sub
End Class


</code>


Svara

Sv: Aktivitetsfältet där klockan är(de små ikonerna).

Postades av 2003-06-19 16:14:47 - Johan Normén

Detta räcker:
<code>
Public WithEvents I As System.Windows.Forms.NotifyIcon

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


I = New System.Windows.Forms.NotifyIcon()

I.Icon = New Icon("icon1.ico")
I.ContextMenu = Me.ContextMenu1 'Meny för att AVSLUTA programmet.
I.Text = "Mitt Program"

I.Visible = True


End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

'If TypeOf sender Is Form1 Then 'Då skall man bara gömma den.
'SENDER kommer alltid förbli Form1 så länge du inte kopplar på fler Handles som har samma signatur som Closing eventet. Så du kan ta bort denna if.
e.Cancel = True
Me.ShowInTaskbar = False
Me.Visible = False

End If

End Sub

Private Sub I_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles I.DoubleClick

Me.ShowInTaskbar = True
Me.Visible = True

End Sub


Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

Application.Excit() <-- Dödar hela applicationen. Allt dör då.
End Sub
End Class
</code>

Det beror lite på hur du vill göra din lösning. Om du vill trigga Event för att du kanske vill göra en massa saker innan applikationen dör. Excit dödar din applikation med en gång. I vissa fall vill man kanske ropa på ett event för att man vill ha en gemensam upprensning eller något vid stägning.


//Johan N


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
515
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies