Problema nas chamadas de formulário com VB.Net
26/09/2016
0
Boa noite colegas. Estou com o seguinte problema no VB.Net : tenho um formulário inicial, por exemplo, de login que chama um MDI que por sua vez chama um form2, que por sua vez chama um form3, que por sua vez chama um form4. Quando o formulário inicial é o MDI, as chamadas ocorrem normalmente, mas que a chamada inicial é o frmInicial, por exemplo, o form de login, o form2 não consegue chamar o form3. O que posso fazer para que funcione normalmente começando pelo form de login?
Public Class frmInicial Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.Hide() Dim formInicial As New mdiPrincipal formInicial.Show() End Sub End Class 'frm mdiPrincipal (é um MDI) Public Class mdiPrincipal Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim form As New Form2 form.MdiParent = Me form.Show() End Sub End Class Public Class Form2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim form1 As New Form3 form1.MdiParent = mdiPrincipal form1.Show() End Sub End Class Public Class Form3 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim form1 As New Form4 form1.MdiParent = mdiPrincipal form1.Show() End Sub End Class Public Class Form4 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub End Class
Carlos Oliveira
Curtir tópico
+ 0
Responder
Posts
27/09/2016
Carlos Oliveira
Olá pessoal. O meu problema é que tenho inicialmente um form de login do sistema.
Quando passo por ele tenho um form MDI com os menus do sistema onde seleciono um form de cadastro,
Neste eu mostro todos os registros em um DataGridView.
Quando o usuário clica em um dos registros, deveria abrir um outro form com todos os dados do registro selecionado, que são muitos, para fazer a manutenção, conforme rotina abaixo:
Mas o form não aparece. Pelo debug verifico que o form frmDadosProcesso é iniciado, mas não sei porque não aparece. Mas quando eu retiro o form de login, ou seja, início é pelo MDI eu consigo abrir o form frmDadosProcesso.
O que eu posso fazer para resolver este problema?
Private Sub btnProsseguir_Click(sender As Object, e As EventArgs) Handles btnProsseguir.Click Dim form = New frmPrincipal Me.Hide() form.Show() End Sub
Quando passo por ele tenho um form MDI com os menus do sistema onde seleciono um form de cadastro,
Private Sub CadastroDeProcessoToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CadastroDeProcessoToolStripMenuItem.Click Dim form = New frmListaProcessos form.MdiParent = Me form.Show() End Sub
Neste eu mostro todos os registros em um DataGridView.
Private Sub preencherGrid() 'Variáveis para medir tempo Dim tInicio As DateTime Dim tFim As DateTime Dim tDiferenca As TimeSpan tInicio = Now With dgvListaProcessos 'Carregar os dados .DataSource = Nothing .Rows.Clear() .Columns.Clear() carregaDadosLINQ() 'Formatando o DataGridView 'Coluna do código do Processo .Columns(0).HeaderText = "Código" .Columns(0).Width = 50 .Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter .Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(0).Name = "Codigo" 'Assunto do Processo .Columns(1).HeaderText = "Assunto" .Columns(1).Width = 585 .Columns(1).Name = "Assunto" 'Botão de manutenção Dim btn As New DataGridViewButtonColumn() .Columns.Add(btn) btn.HeaderText = "Manutenção" btn.Text = "Click aqui" btn.Name = "btn" btn.UseColumnTextForButtonValue = True 'btn.Width = 30 End With tFim = Now tDiferenca = tFim.Subtract(tInicio) lblTempoGasto.Text = "Tempo: " & tDiferenca.TotalSeconds.ToString("0.0") & " segundos" End Sub
Quando o usuário clica em um dos registros, deveria abrir um outro form com todos os dados do registro selecionado, que são muitos, para fazer a manutenção, conforme rotina abaixo:
Private Sub dgvListaProcessos_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvListaProcessos.CellContentDoubleClick Dim linha As Integer Dim nIdProcesso As Integer linha = dgvListaProcessos.CurrentRow.Index nIdProcesso = dgvListaProcessos.Rows(linha).Cells("Codigo").Value Dim form As New frmDadosProcesso(nIdProcesso) form.MdiParent = frmPrincipal form.Show() End Sub
Mas o form não aparece. Pelo debug verifico que o form frmDadosProcesso é iniciado, mas não sei porque não aparece. Mas quando eu retiro o form de login, ou seja, início é pelo MDI eu consigo abrir o form frmDadosProcesso.
Public Sub New(nIdProc As Integer) ' Esta chamada é requerida pelo designer. InitializeComponent() ' Adicione qualquer inicialização após a chamada InitializeComponent(). nIdProcesso = nIdProc mostrarDados() End Sub
O que eu posso fazer para resolver este problema?
Responder
Clique aqui para fazer login e interagir na Comunidade :)