1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em VB .net

Discussão em 'Programação' iniciada por Blue_Wings, 14 de Abril de 2006. (Respostas: 10; Visualizações: 1206)

  1. Blue_Wings

    Blue_Wings Power Member

    Olá pessoal,

    existe instruçao para retornar "true" a ***** coisa fechando um Form pela "cruzinha" ?
    Akela cruzinha no canto superior direito ao pé do maximaze e minimize.

    Thnks :)
     
  2. HecKel

    HecKel The WORM

    salvo erro tens mesmo um procedimento do form..., onclose (acho), não me lembro bem dos procedimentos associados a eventos, mas tenho quase a certeza absoluta k existe um nos forms para isso mesmo.

    Se queres saber se um form está activo..., é pá..., mais uma vez vou falar decor (não programo em em VB.net à 4 anos...), mas acho que nome_do_form.IsLoad() existe..., ou ***** coisa parecida..., nada que fazer uso das belas sugestões de dropdown do VS.net :)

    abraços, HecKel
     
  3. nmd

    nmd Power Member

    Explica exactamente o que pretendes.
     
  4. Blue_Wings

    Blue_Wings Power Member

    Tenho um menu no formPrincipal dakeles menus como temos no windows (Ficheiro,EditarFerramentas..., mas o meu diz por exemplo Clientes) estás a ver? e quando entro nesse menu clientes abre o formClientes e desactiva o meni Clientes do formPrincipal para nao poder abrir multiplos forms do formClientes.

    Entao agora eu tenho um botao no formClientes a dizer "Sair" e ao carregar ai activa de novo o menuClientes do formPrincipal para poder abrir de novo se for necessário uma vez que já saí dele. O problema é que se eu fechar o formClientes pela "cruzinha" já naão sei como é k digo para ele activar o menu do formPrinclipal por onde acedo ao formClientes .

    Cumps ppl.

    Se souberes agradeço :)
     
  5. SoundSurfer

    SoundSurfer Power Member

    Tens de apanhar o evento "OnClose" prai... agora não tenho o visual studio à frente, mas na parte do design deve dar para associar um função a esse evento .
     
  6. nmd

    nmd Power Member

    Experimenta no evento FormClosing

    Código:
    Private[SIZE=2]Sub[/SIZE][SIZE=2] Form1_FormClosing([/SIZE][SIZE=2]ByVal[/SIZE][SIZE=2] sender [/SIZE][SIZE=2]As[/SIZE][SIZE=2]Object[/SIZE][SIZE=2], [/SIZE][SIZE=2]ByVal[/SIZE][SIZE=2] e [/SIZE][SIZE=2]As[/SIZE][SIZE=2] System.Windows.Forms.FormClosingEventArgs) [/SIZE][SIZE=2]Handles[/SIZE][SIZE=2]Me[/SIZE][SIZE=2].FormClosing[/SIZE]
     
    [SIZE=2][COLOR=white]'Poe aqui o código que queres[/COLOR]
    [/SIZE][SIZE=2][COLOR=white][/COLOR][/SIZE] 
    [SIZE=2][COLOR=white]End[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][COLOR=white]Sub[/COLOR]
    [/COLOR][/SIZE]
     
  7. Blue_Wings

    Blue_Wings Power Member

    Muito obrigado mas esta a dar um erro aqui:

    http://img84.imageshack.us/my.php?image=form1km.jpg

    http://img84.imageshack.us/my.php?image=form22ql.jpg

    Private Sub frmClientes_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) HandlesMe.FormClosing


    Dim frmX As New frmMain
    'volta a activar o botao de menu de cliente no menu principal
    frmX.mnuRegistarCliente.Enabled = True
    Me.Close()
    End Sub

    --------------------------------------------
    Erro:

    D:\My Documents\Visual Studio Projects\Mini_Trabalho_2006\frmClientes.vb(411): Type 'System.Windows.Forms.FormClosingEventArgs' is not defined.


    D:\My Documents\Visual Studio Projects\Mini_Trabalho_2006\frmClientes.vb(411): End of statement expected.
     

  8. Coloca aí um espaço que falta e vê se continua a dar erro.

    Private Sub frmClientes_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    Dim frmX As New frmMain
    'volta a activar o botao de menu de cliente no menu principal
    frmX.mnuRegistarCliente.Enabled = True
    Me.Close()
    End Sub
     
  9. Blue_Wings

    Blue_Wings Power Member

    Já consegui fazer é: (Faço isto no formClientes)

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

    Dim frmX As New frmMain
    'volta a activar o botao de menu de cliente no menu principal
    frmX.mnuRegistarCliente.Enabled = True

    End Sub


    Thnks :)


    Mas nao me está a activar de novo o menu k eu peço para activar.. :( porque será?

    Onde eu peço para desactivar é aki: (Este é o formPrincipal)

    Private Sub mnuRegistarCliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuRegistarCliente.Click

    Dim frmMain As New frmClientes
    mnuRegistarCliente.Enabled = False

    End Sub
     
  10. Boas

    Experimenta assim no .closing:


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

    frmMain.mnuRegistarCliente.Enabled = True

    End Sub


    Estive aqui a experimentar e assim funciona, da maneira que tinhas também não me funcionava.
     
  11. iznougud

    iznougud I quit My Job for Folding

    Isto ficou ligeiramente grande, mas acho que se percebe e ficas a saber vários métodos. Qualquer dúvida manda PM.

    2 métodos, um faz o que tu queres automaticamente:

    Método 1:

    Quando crias o form frmClientes deves estar a fazer frmClientes.Show(), em vez disso usa frmClientes.ShowDialog(), isto bloqueia-te a form principal até a form frmClientes ter sido fechada.

    ATENCAO: na form frmClientes tens de fazer Me.DialogResult = DialogResult.[um dos resultados possiveis] para ela fechar e desbloquear a form principal.



    Método 2:
    (útil quando queres alterar valores do form inicial ou usar uma das sua funcoes ou variáveis globais)

    Quando estás a criar o Form frmClientes podes passar um apontador para o teu form principal, novamente existem 2 métodos:



    1. Dim ola as new frmClientes (Me)

    e no form frmClientes tens de alterar o método New para receber o apontador

    Public Class frmClientes
    Inherits System.Windows.Forms.Form

    Private main as frmMain


    #Region " Windows Form Designer generated code "

    Public Sub New(ByVal main_form As frmMain)
    MyBase.New()

    'This call is required by the Windows Form Designer.
    InitializeComponent()

    'Add any initialization after the InitializeComponent() call

    main = main_form

    End Sub

    Agora no método Closing já podes fazer main.Enable





    2.

    no form frmClientes crias uma variável pública para guardar o apontador do form principal

    Public main as frmMain

    Assim basta-te fazer:

    Dim ola as new frmClientes
    ola.main = Me
     

Partilhar esta Página