• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ziwdon

[Dúvida] "Me.hide()" não está a funcionar

8 mensagens neste tópico

É o seguinte...eu estou a criar um programa no qual tenho uma opção que é quando se abre o programa ele começa em modo hide (escondido).

O programa, quando o utilizador escolhe essa opção, cria um ficheiro numa pasta denominado "INF2".

Ao abrir o programa da próxima vez, este vai verificar se existe tal ficheiro e se existir então supostamente o programa entraria em modo hide.

O problema é que o "Me.hide()" não está a funcionar não sei porque. Se fizer um botao funciona, mas se o puser no "Form1_load" já nao.

Já experimente por no inicio do form, no fim...ja verifiquei como o programa actua quando é corrido (que por acaso o programa le a instrução mas não a executa) mas continua a nao dar e eu sem perceber porque.

Aqui fica o código...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.FileSystem.DirectoryExists("C:\Program Files\PCSecurityCam") = False Then
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Log")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Screens")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Data")
        End If

        Timer1.Interval = 600000
        Timer1.Enabled = True
        ListBox.Text = "10 min"

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF1") Then
            autostartBox.Checked = True
        End If

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF2") Then
            startontrayBox.Checked = True
            me.hide()
        End If
    End Sub

O resto não posto porque é muito extenso, mas penso que o essencial está aqui.

Obrigado pela ajuda.

Fiquem bem ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Me.Opacity = 0

Me.ShowInTaskbar = False

tá feito

Essa solução digo-te ja é um pouco a padeiro ;)....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Po

Boas

Coloca o

        Me.Hide() num Timer_Tick

Jorge

porque é que n usas esta ieia... ficava mt melhor

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.FileSystem.DirectoryExists("C:\Program Files\PCSecurityCam") = False Then
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Log")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Screens")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Data")
        End If

        Timer1.Interval = 600000
        Timer1.Enabled = True
        ListBox.Text = "10 min"

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF1") Then
            autostartBox.Checked = True
        End If

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF2") Then
            startontrayBox.Checked = True
           'Agora o Codigo novo
           Dim t As Timer = New Timer
          AddHandler t.Tick, AddressOf t_Tick
          t.Interval = 100
          t.Start()
        End If
    End Sub
'Mais Codigo novo
    Sub t_Tick(ByVal sender As Object, ByVal e As EventArgs)
        Me.Hide()
        CType(sender, Timer).Stop()
    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Me.Opacity = 0

Me.ShowInTaskbar = False

tá feito

Essa solução digo-te ja é um pouco a padeiro ;)....

padeiro? é mais padeiro fazer Me.Hide num timer a correr vezes infinitas do que esta, e em termos de perfomance nem se compara...mas pronto cada um come o padeiro que quer  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok...já consegui.

Aqui fica o código:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.FileSystem.DirectoryExists("C:\Program Files\PCSecurityCam") = False Then
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Log")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Screens")
            My.Computer.FileSystem.CreateDirectory("C:\Program Files\PCSecurityCam\Data")
        End If

        Timer1.Interval = 600000
        Timer1.Enabled = True
        ListBox.Text = "10 min"

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF1") Then
            autostartBox.Checked = True
        End If

        If My.Computer.FileSystem.FileExists("C:\Program Files\PCSecurityCam\Data\INF2") Then
            startontrayBox.Checked = True

            startontray_timer.Interval = 10
            startontray_timer.Enabled = True
        End If
    End Sub

    Private Sub startontray_timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles startontray_timer.Tick
        Me.Hide()
        startontray_timer.Stop()
    End Sub

Obrigado pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora