FECHAMENTO DE FORM
como faço para fechar somente o form actual, vamos supor que tenho 3 forms aberto, mas quero fechar somente o actual.
Bo atarde amigão!
me.clouse, é assim
me.clouse, é assim
esqueci de dizer algumas coisas;
tenho um mdiprincipal e nele tenho um menu com varios form, tipo: form1, form2, form3.
vamos supor que abri os 3 form no mdi.
no mesmo menu tenho uma opção fechar form, gostaria que ele fechasse o form que tenho activo.
tenho um mdiprincipal e nele tenho um menu com varios form, tipo: form1, form2, form3.
vamos supor que abri os 3 form no mdi.
no mesmo menu tenho uma opção fechar form, gostaria que ele fechasse o form que tenho activo.
Public Class Form1
Dim FormFilho As New Form2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
FormFilho.MdiParent = Me
FormFilho.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If FormFilho.Text = [Ô]Form2[Ô] Then
FormFilho.Close()
End If
End Sub
End Class
infelizmente não da certo. tenho os form assim:
form1 esta com o nome de frmprocesso
form2 esta com o nome de frmestoque
form3 esta com o nome de frmprodutos
e mdiprincipal
no mdiprincipal tenho um menu [Ô]Arquivo[Ô] com um submenu [Ô] fechar tela actual[Ô], vamos supor que a frmestoque estaja activo, ao clicar no fechar tela actual fecharia o estoque e as outras permaneceria. mas não gostaria de fazer uma linha para cada form, tipo assim:
se frmprocesso = activo entao
fecha
senao frmestoque = activo entao
fecha
senao frmprodutos = activo entao
fecha
fimse
porque posso futuramente criar mais forms precisava ser assim:
verifica qual form esta ativo
depois fecha-o
form1 esta com o nome de frmprocesso
form2 esta com o nome de frmestoque
form3 esta com o nome de frmprodutos
e mdiprincipal
no mdiprincipal tenho um menu [Ô]Arquivo[Ô] com um submenu [Ô] fechar tela actual[Ô], vamos supor que a frmestoque estaja activo, ao clicar no fechar tela actual fecharia o estoque e as outras permaneceria. mas não gostaria de fazer uma linha para cada form, tipo assim:
se frmprocesso = activo entao
fecha
senao frmestoque = activo entao
fecha
senao frmprodutos = activo entao
fecha
fimse
porque posso futuramente criar mais forms precisava ser assim:
verifica qual form esta ativo
depois fecha-o
E você não pode coloca botão de [Ô]fechar[Ô] nos form[ô]s e a pessoa escolhe qual form ela quer fechar?
Dai você coloca os forms como modais, e a pessoa só vai conseguir mecher e fechar a tela que ela abriu por ultimo
e consequentemente será o que ela estará mechendo. (atual)
Dai você coloca os forms como modais, e a pessoa só vai conseguir mecher e fechar a tela que ela abriu por ultimo
e consequentemente será o que ela estará mechendo. (atual)
mas gostaria dessa função, se nao tiver como em ultimo caso faço.
Faça conforme modelo em anexo... Só adequar ao seu código.
por favor jonathanstecker, fiz conforme o seu exemplo só alterando algumas coisas e dá o seguinte erro:
Base class [ô]Class1[ô] specified for class [ô]Usuario[ô] cannot be different from the base class [ô]System.Windows.Forms.Form[ô] of one of its other partial types. E:\PRGTIAL\TIAL\TIAL\Usuario.vb
no class coloquei igual
Public Class Class1
Inherits System.Windows.Forms.Form
Public Overridable Sub Fechar()
End Sub
Private Sub InitializeComponent()
Me.SuspendLayout()
[ô]
[ô]Class1
[ô]
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Name = [Ô]Class1[Ô]
Me.Text = [Ô]u[Ô]
Me.ResumeLayout(False)
End Sub
End Class
no menu do mdi tambem
Private Sub FecharTelaActualToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FecharTelaActualToolStripMenuItem.Click
Dim child As Class1
child = CType(Me.ActiveMdiChild, Class1)
child.Fechar()
End Sub
só alterei no form
modelo como vc havia colocado
Inherits WindowsApplication1.Class1
Public Overrides Sub Fechar()
Me.Close()
End Sub
modelo como coloquei
Inherits TIAL.Class1
Public Overridable Sub Fechar()
Me.Close()
End Sub
Base class [ô]Class1[ô] specified for class [ô]Usuario[ô] cannot be different from the base class [ô]System.Windows.Forms.Form[ô] of one of its other partial types. E:\PRGTIAL\TIAL\TIAL\Usuario.vb
no class coloquei igual
Public Class Class1
Inherits System.Windows.Forms.Form
Public Overridable Sub Fechar()
End Sub
Private Sub InitializeComponent()
Me.SuspendLayout()
[ô]
[ô]Class1
[ô]
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Name = [Ô]Class1[Ô]
Me.Text = [Ô]u[Ô]
Me.ResumeLayout(False)
End Sub
End Class
no menu do mdi tambem
Private Sub FecharTelaActualToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FecharTelaActualToolStripMenuItem.Click
Dim child As Class1
child = CType(Me.ActiveMdiChild, Class1)
child.Fechar()
End Sub
só alterei no form
modelo como vc havia colocado
Inherits WindowsApplication1.Class1
Public Overrides Sub Fechar()
Me.Close()
End Sub
modelo como coloquei
Inherits TIAL.Class1
Public Overridable Sub Fechar()
Me.Close()
End Sub
Já refiz tudo novamente e ainda não encontro nada
Nada ainda?
Tópico encerrado , respostas não são mais permitidas