Gå til innhold

Minimer/gjenopprett program med hurtigtast (VB2005Express)


Anbefalte innlegg

Jeg er fullstendig grønn på programmering og det kommer jeg også antagelig vis til å forbli også i fremtiden. Derfor lurer jeg på om det er noen snille personer der ute som kan hjelpe meg med en sak.

 

Jeg har laget et enkelt program (en form?) med en picture box som inneholder et bilde. Hvis jeg starter dette programmet så dukker altså dette bilde opp på skjermen der jeg har definert at det skal dukke opp. Dette funker fint.

 

Det jeg trenger hjelp til å få laget en hurtig tast som gjør at dette bilde (programmet) blir minimert når man trykker på en definert knapp. f.eks (F1) og at bildet (programmet) blir gjenopprettet når man trykker på en annen definert knapp f.eks (F2).

 

Jeg lurer også på om man kan få dette programmet til å være "always on top" på en enkel måte?

 

Hvis noen kan hjelpe med med dette så belønnes det med 1000vis av takk :yes:

Lenke til kommentar
Videoannonse
Annonse
Jeg lurer også på om man kan få dette programmet til å være "always on top" på en enkel måte?
Dette kan du enkelt oppnå ved å sette formens TopMost-egenskap i Properties-vinduet til sann. Alternativt kan du legge inn følgende kodelinje i formens kodevindu (dobbelklikk på formen):

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.TopMost = True
   End Sub

 

Det jeg trenger hjelp til å få laget en hurtig tast som gjør at dette bilde (programmet) blir minimert når man trykker på en definert knapp. f.eks (F1) og at bildet (programmet) blir gjenopprettet når man trykker på en annen definert knapp f.eks (F2).
Da VB.NET ikke støtter fullverdige (dvs. at de fungerer likegyldig av tastaturfokus) hurtigtaster, må en nok dessverre gjøre deler av denne implementasjonen egenhendig. For dette tilfellet vil jeg tro en nokså rudimentær fremgangsmåte - å simpelthen sjekke disse tastene kontinuerlig - er tilstrekkelig. Legg derfor inn en Timer-kontroll hvis intervall-egenskap er 10 og Enabled er satt til SANN, sammen med følgende kode:

    Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Integer) As Integer

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

       ' Sjekker de ulike hurtigtastene for de riktige kombinasjoner
       If GetKeyState(Keys.F2) And &HF0000000 Then
           Me.WindowState = FormWindowState.Normal
       ElseIf GetKeyState(Keys.F3) And &HF0000000 Then
           Me.WindowState = FormWindowState.Maximized
       ElseIf GetKeyState(Keys.F4) And &HF0000000 Then
           Me.WindowState = FormWindowState.Minimized
       End If

   End Sub

Lenke til kommentar

Hei og beklager at jeg svarer litt sent på denne. Tusen takk for at du ville hjelpe.

Topmost funksjonen virket veldig bra.

 

Men i og med at programmering ikke er min sterke side så lurer jeg litt på hvor kode eksemplet ditt skal limes inn? Jeg prøvde å legge det inn på denne måten:

 

Public Class Form1

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

   End Sub


   Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

   End Sub
   Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Integer) As Integer

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

       ' Sjekker de ulike hurtigtastene for de riktige kombinasjoner
       If GetKeyState(Keys.F2) And &HF0000000 Then
           Me.WindowState = FormWindowState.Normal
       ElseIf GetKeyState(Keys.F3) And &HF0000000 Then
           Me.WindowState = FormWindowState.Maximized
       ElseIf GetKeyState(Keys.F4) And &HF0000000 Then
           Me.WindowState = FormWindowState.Minimized
       End If

   End Sub
End Class

 

Men da får jeg denne feilmeldingen:

 

Handle clause requires a WithEvents variable defined in the containing or one of its base types.

 

Vet du hva dette er?

Lenke til kommentar

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...