login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Programma rechts in de taakbalk zetten. (Opgelost)

Offline nick5556 - 08/12/2009 21:14
Avatar van nick5556PHP beginner Hallo,

Ten eerste, sorry voor de titel van het topic, ik ben de naam even kwijt...

Oke, nu terzake. Ik wil mijn programma niet in het midden van de taakbalk weergeven, maar alleen rechts in de taakbalk. Als er dan op het icoontje geklikt word wil ik graag dat het programma erboven( net als de popupjes van msn als er iemand inlogt) verschijnt. Deze hoeft niet weg te gaan.

Hoe moet ik dit oplossen? En hoe moet ik mijn programma rechts onderin opstarten?

Een hoop vragen, en ik hoop overal een antwoord op te krijgen! 

Bij voorbaat dank!

Nick

6 antwoorden

Gesponsorde links
Offline Abbas - 08/12/2009 21:36
Avatar van Abbas Gouden medaille

Crew .NET
Je moet je form "verstoppen" bij het minimaliseren ervan. Maak code voor het event "Resize" en hierin stop je volgende code:

  1. If Me.WindowState = FormWindowState.Minimized Then
  2. Me.Hide()
  3. End If

Of je kan ook de property "ShowInTaskbar" op False zetten om je programma niet te tonen in het midden van de taakbalk. Als je een icoontje wil gebruiken moet je een "trayIcon" toevoegen aan je Form vanuit de ToolBox. En dan wordt automatisch de afbeelding van die trayIcon getoond rechtsonder. Je kan er dan ook een ContextMenu aan toevoegen.
Offline nick5556 - 08/12/2009 21:43 (laatste wijziging 08/12/2009 21:56)
Avatar van nick5556 PHP beginner Ik heb zelf op het moment uitgevonden hoe ik mijn form rechtsonderin kan starten, het werkt niet, maar ik heb het idee dat ik goed zit. Ik heb deze code daarvoor:

Module:
  1. Private Const SM_CXSCREEN As Integer = 0
  2. Private Const SM_CYSCREEN As Integer = 1
  3.  
  4.  
  5. Private Declare Function GetSystemMetrics Lib "user32.dll" Alias "GetSystemMetrics" (ByVal Which As Integer) As Integer
  6.  
  7. Public ReadOnly Property ScreenX() As Integer
  8. Get
  9. Return GetSystemMetrics(SM_CXSCREEN)
  10. End Get
  11. End Property
  12.  
  13. Public ReadOnly Property ScreenY() As Integer
  14. Get
  15. Return GetSystemMetrics(SM_CYSCREEN)
  16. End Get
  17. End Property


Form load:
  1. Dim ScreenXAs As Integer = ScreenX - Me.Width
  2. Dim ScreenYAs As Integer = ScreenY - Me.Height
  3. Me.Location.X = ScreenXAs
  4. Me.Location.Y = ScreenYAs


Nu krijg ik alleen een kringelstreepje onder 'Me.Location.X' en 'Me.Location.Y'

Verder zal ik nog even kijken. Ik heb een form zonder border dus ik moet een knop maken om hem te minimaliseren.

EDIT:

Tray icon heb ik, alleen als ik er nu op klik, moet mijn form op de voorgrond komen.

Oke. Die laatste vraag opgelost. Button gemaakt om te minimaliseren, hiden werkt.
Offline Abbas - 08/12/2009 23:59
Avatar van Abbas Gouden medaille

Crew .NET
http://rapidsha...e.rar.html

Hier staat een mini-project met alle code en items die je moet hebben als antwoord(en) op je vragen.
Offline nick5556 - 09/12/2009 09:24 (laatste wijziging 09/12/2009 17:05)
Avatar van nick5556 PHP beginner Ik gebruik ook 'Me.Show' voor het klikken op het icoon. Nu is het probleem dat als ik dat doe, dat mijn programma alleen een klein balkje is.. Ik ben nu niet thuis, maar als ik thuis ben zal ik wel een print screen posten...

EDIT:

Moet ik het probleem met het form rechtsonderin laten zien zo aanpakken?
  1. ' Deze code in form load
  2. ' Samen met de property's
  3. Dim ScreenXAs As Integer = ScreenX - Me.Width
  4. Dim ScreenYAs As Integer = ScreenY - Me.Height
  5.  
  6. Me.Location = new Point(ScreenXAs, ScreenYAs)


En de startposition property op Manual zetten?

Edit: De plaats van het programma is nu goed. Nu moet ik alleen nog het laten terugkomen doen...

Dit doe ik op de volgende manier, maar er gebeurt niks..
  1. Private Sub frmMain_Resize(ByVal sender As Object, _
  2. ByVal e As System.EventArgs) _
  3. Handles Me.Resize
  4.  
  5. If Me.WindowState = FormWindowState.Minimized Then
  6. Me.Hide()
  7. End If
  8. If Me.WindowState = FormWindowState.Normal Then
  9. Me.Location = New Point(ScreenXAs, ScreenYAs)
  10. Me.Show()
  11. End If
  12. End Sub
  13. Private Sub TrayIconMenu_DoubleClick(ByVal sender As Object, _
  14. ByVal e As System.EventArgs) _
  15. Handles TrayIconMenu.DoubleClick
  16. Me.WindowState = FormWindowState.Normal
  17. End Sub
  18.  
  19. Private Sub TrayIconMenuShow_Click(ByVal sender As Object, _
  20. ByVal e As System.EventArgs) _
  21. Handles TrayIconMenuShow.Click
  22. Me.WindowState = FormWindowState.Normal
  23. End Sub
Offline Abbas - 09/12/2009 17:37
Avatar van Abbas Gouden medaille

Crew .NET
Kijk eens goed naar de"Handles" van de twee laatste Subs. Bij de ene staat er "TrayIconMenu" en bij de andere staat er "TrayIconMenuShow". Een van de twee zal niet juist zijn vermoed ik.
Offline nick5556 - 09/12/2009 18:14 (laatste wijziging 09/12/2009 20:54)
Avatar van nick5556 PHP beginner Ik heb de "TrayIconMenu" veranderd naar TrayIcon(de naam die ik aan het icoon gegeven heb). Maar nu gebeurd er nogsteeds niets als ik een van de twee manieren gebruik om het menu te laten zien...


EDIT:

OPGELOST

Het resize event niet gebruikt. Gewoon op het __ knopje laten hiden, en op het dubbelklikken laten showen! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s