none
Como exibir um formulario no modo show e carregar os dados na textbox? RRS feed

  • Discussão Geral

  • Boa tarde!

    como exibir um formulario no modo show,  exibir e selecionar os  dados no datagridview para preencher as textbox em vb.net?

    Alguem pode ajudar!

    Obrigado


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    segunda-feira, 10 de fevereiro de 2014 12:14

Todas as Respostas

  • Olá,

    Sua pergunta é vaga. Como deseja abrir, por intermédio de javascript, está usando alguma biblioteca, vai usar codebehind?

    Enfim, dê um detalhamento maior para que possa ser ajudado.

    Abçs

    segunda-feira, 10 de fevereiro de 2014 15:28
  • Eu imagino que o que você está querendo fazer é um formulário master-detail onde você lista todos
    os registro em um datagridview e quando seleciona um desses registro ele preenche os dados nos campos de texto.

    Algo assim?
     


    terça-feira, 11 de fevereiro de 2014 17:08
  • 
    

    no formulario cadastro de provincias eu chamo o formulario com a lista de paises para escolher o pais em que cada provincia pertence, segue o codigo abaixo

    1º - Segue o codigo do formulario com o DATAGRIDVIEW  que contem a lista de paises:

      Private Sub FrmListaPaises_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            DGVListaPaises.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

            DGVListaPaises.AllowUserToAddRows = False

            DGVListaPaises.AllowUserToDeleteRows = False

            DGVListaPaises.EditMode = DataGridViewEditMode.EditProgrammatically

            DGVListaPaises.AllowUserToResizeColumns = False

            DGVListaPaises.AllowUserToOrderColumns = False

            'DGVListaPaises.AutoGenerateColumns = True 'Aqui estamos a dizer que gere colunas automaticas

           DGVListaPaises.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

            DGVListaPaises.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single

            'Vamos alterar a core das linhas alternadas no grid

            DGVListaPaises.RowsDefaultCellStyle.BackColor = Color.White

            DGVListaPaises.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque

            'Seleciona a selula inteira

            DGVListaPaises.SelectionMode = DataGridViewSelectionMode.FullRowSelect

           'Não permitir a seleção de multiplas linhas

            DGVListaPaises.MultiSelect = False

           'Aqui criamos as colunas no datagrid

            DGVListaPaises.Columns.Add("colID_PAIS", "Codigo")

            DGVListaPaises.Columns.Add("colID_CONTINENTE", "Codigo do Continente")

            DGVListaPaises.Columns.Add("colSIGLA_PAIS", "Sigla do Pais")

            DGVListaPaises.Columns.Add("colDESCRIÇÃO_PAIS", "Nome do Pais")

            DGVListaPaises.Columns.Add("colDESCRIÇÃO_CONTINENTE", "Nome do Continente")

            Dim ctxt As New DAL.DANIROSADataContext

            Try

                Dim listaPaises = From pais In ctxt.LT_Paises

                Select pais

                Dim IdxLine As Integer = 0

                For Each paise In listaPaises

                    DGVListaPaises.Rows.Add()

                    DGVListaPaises.Rows(IdxLine).Cells(0).Value = paise.ID_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(1).Value = paise.ID_CONTINENTE

                    DGVListaPaises.Rows(IdxLine).Cells(2).Value = paise.SIGLA_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(3).Value = paise.DESCRIÇÃO_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(4).Value = paise.DESCRIÇÃO_CONTINENTE

                    IdxLine = IdxLine + 1

                Next

            Catch ex As Exception

            End Try

            'Aqui oucultamos a linha que contem o codigo do continente, exibimos apenas o nome do continente

            DGVListaPaises.Columns(1).Visible = False

            'Aqui posicionamos o texto das colunas,

            DGVListaPaises.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Focus()

           'Aqui Aqui estamos a contar o total de registros no datagridview

            LblNumeroPais.Text = DGVListaPaises.Rows.Count.ToString()

        End Sub

    1º-aqui ao premirmos a tecla F2 exibimos a lista de paises para escolhermos um pais

        Private Sub TxtCodigoPaisProvincia_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtCodigoPaisProvincia.KeyDown

            Try

                'aqui ao premirmos a tecla f2 abrimos o formulario com a lista dos paises

                If e.KeyCode = Keys.F2 Then

                    listFormPaises = New FrmListaPaises

                    listFormPaises.MdiParent = FrmPRINCIPAL

                    listFormPaises.Show()

                    'aqui exibimos os dados nas textbox       

                    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

                End If

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

          

            'listFormPaises.Dispose()

               

            ' listFormPaises.DGVListaPaises.Columns.Clear()

            'listFormContinentes.DGVListaContinentes.Rows.Clear()

            'Aqui ao premirmos a tecla escap limpamos as textboxes

            If e.KeyCode = Keys.Escape Then

                LimparProvincia()

            End If

        End Sub

    aqui no botão procurar pais

    2º-aqui ao premirmos o botão  exibimos a lista de paises para escolhermos um pais

        Private Sub btnLocalizarPaisProvincia_Click(sender As Object, e As EventArgs) Handles btnLocalizarPaisProvincia.Click

            Try

                listFormPaises = New FrmListaPaises

                listFormPaises.MdiParent = FrmPRINCIPAL

                listFormPaises.Show()

            TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

            ' listFormPaises.Dispose()

            ' listFormPaises.DGVListaPaises.Columns.Clear()

            ' listFormPaises.DGVListaPaises.Rows.Clear()

        End Sub

    eu quero chamar o formulario com a lista dos paises e preencher o codigo do pais na textbox no formulario de cadastro de provincias.


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sexta-feira, 14 de fevereiro de 2014 19:05
  • 
    

    no formulario cadastro de provincias eu chamo o formulario com a lista de paises para escolher o pais em que cada provincia pertence, segue o codigo abaixo

    1º - Segue o codigo do formulario com o DATAGRIDVIEW  que contem a lista de paises:

      Private Sub FrmListaPaises_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            DGVListaPaises.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

            DGVListaPaises.AllowUserToAddRows = False

            DGVListaPaises.AllowUserToDeleteRows = False

            DGVListaPaises.EditMode = DataGridViewEditMode.EditProgrammatically

            DGVListaPaises.AllowUserToResizeColumns = False

            DGVListaPaises.AllowUserToOrderColumns = False

            'DGVListaPaises.AutoGenerateColumns = True 'Aqui estamos a dizer que gere colunas automaticas

           DGVListaPaises.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

            DGVListaPaises.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single

            'Vamos alterar a core das linhas alternadas no grid

            DGVListaPaises.RowsDefaultCellStyle.BackColor = Color.White

            DGVListaPaises.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque

            'Seleciona a selula inteira

            DGVListaPaises.SelectionMode = DataGridViewSelectionMode.FullRowSelect

           'Não permitir a seleção de multiplas linhas

            DGVListaPaises.MultiSelect = False

           'Aqui criamos as colunas no datagrid

            DGVListaPaises.Columns.Add("colID_PAIS", "Codigo")

            DGVListaPaises.Columns.Add("colID_CONTINENTE", "Codigo do Continente")

            DGVListaPaises.Columns.Add("colSIGLA_PAIS", "Sigla do Pais")

            DGVListaPaises.Columns.Add("colDESCRIÇÃO_PAIS", "Nome do Pais")

            DGVListaPaises.Columns.Add("colDESCRIÇÃO_CONTINENTE", "Nome do Continente")

            Dim ctxt As New DAL.DANIROSADataContext

            Try

                Dim listaPaises = From pais In ctxt.LT_Paises

                Select pais

                Dim IdxLine As Integer = 0

                For Each paise In listaPaises

                    DGVListaPaises.Rows.Add()

                    DGVListaPaises.Rows(IdxLine).Cells(0).Value = paise.ID_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(1).Value = paise.ID_CONTINENTE

                    DGVListaPaises.Rows(IdxLine).Cells(2).Value = paise.SIGLA_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(3).Value = paise.DESCRIÇÃO_PAIS

                    DGVListaPaises.Rows(IdxLine).Cells(4).Value = paise.DESCRIÇÃO_CONTINENTE

                    IdxLine = IdxLine + 1

                Next

            Catch ex As Exception

            End Try

            'Aqui oucultamos a linha que contem o codigo do continente, exibimos apenas o nome do continente

            DGVListaPaises.Columns(1).Visible = False

            'Aqui posicionamos o texto das colunas,

            DGVListaPaises.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            DGVListaPaises.Focus()

           'Aqui Aqui estamos a contar o total de registros no datagridview

            LblNumeroPais.Text = DGVListaPaises.Rows.Count.ToString()

        End Sub

    1º-aqui ao premirmos a tecla F2 exibimos a lista de paises para escolhermos um pais

        Private Sub TxtCodigoPaisProvincia_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtCodigoPaisProvincia.KeyDown

            Try

                'aqui ao premirmos a tecla f2 abrimos o formulario com a lista dos paises

                If e.KeyCode = Keys.F2 Then

                    listFormPaises = New FrmListaPaises

                    listFormPaises.MdiParent = FrmPRINCIPAL

                    listFormPaises.Show()

                    'aqui exibimos os dados nas textbox       

                    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

                End If

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

          

            'listFormPaises.Dispose()

               

            ' listFormPaises.DGVListaPaises.Columns.Clear()

            'listFormContinentes.DGVListaContinentes.Rows.Clear()

            'Aqui ao premirmos a tecla escap limpamos as textboxes

            If e.KeyCode = Keys.Escape Then

                LimparProvincia()

            End If

        End Sub

    aqui no botão procurar pais

    2º-aqui ao premirmos o botão  exibimos a lista de paises para escolhermos um pais

        Private Sub btnLocalizarPaisProvincia_Click(sender As Object, e As EventArgs) Handles btnLocalizarPaisProvincia.Click

            Try

                listFormPaises = New FrmListaPaises

                listFormPaises.MdiParent = FrmPRINCIPAL

                listFormPaises.Show()

            TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

            ' listFormPaises.Dispose()

            ' listFormPaises.DGVListaPaises.Columns.Clear()

            ' listFormPaises.DGVListaPaises.Rows.Clear()

        End Sub

    eu quero chamar o formulario com a lista dos paises e preencher o codigo do pais na textbox no formulario de cadastro de provincias.


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sexta-feira, 14 de fevereiro de 2014 19:09
  • no formulario cadastro de provincias eu chamo o formulario com a lista de paises para escolher o pais em que cada provincia pertence, segue o codigo abaixo 1º - Segue o codigo do formulario com o DATAGRIDVIEW que contem a lista de paises: Private Sub FrmListaPaises_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGVListaPaises.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells DGVListaPaises.AllowUserToAddRows = False DGVListaPaises.AllowUserToDeleteRows = False DGVListaPaises.EditMode = DataGridViewEditMode.EditProgrammatically DGVListaPaises.AllowUserToResizeColumns = False DGVListaPaises.AllowUserToOrderColumns = False 'DGVListaPaises.AutoGenerateColumns = True 'Aqui estamos a dizer que gere colunas automaticas DGVListaPaises.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders DGVListaPaises.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single 'Vamos alterar a core das linhas alternadas no grid DGVListaPaises.RowsDefaultCellStyle.BackColor = Color.White DGVListaPaises.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque 'Seleciona a selula inteira DGVListaPaises.SelectionMode = DataGridViewSelectionMode.FullRowSelect 'Não permitir a seleção de multiplas linhas DGVListaPaises.MultiSelect = False 'Aqui criamos as colunas no datagrid DGVListaPaises.Columns.Add("colID_PAIS", "Codigo") DGVListaPaises.Columns.Add("colID_CONTINENTE", "Codigo do Continente") DGVListaPaises.Columns.Add("colSIGLA_PAIS", "Sigla do Pais") DGVListaPaises.Columns.Add("colDESCRIÇÃO_PAIS", "Nome do Pais") DGVListaPaises.Columns.Add("colDESCRIÇÃO_CONTINENTE", "Nome do Continente") Dim ctxt As New DAL.DANIROSADataContext Try Dim listaPaises = From pais In ctxt.LT_Paises Select pais Dim IdxLine As Integer = 0 For Each paise In listaPaises DGVListaPaises.Rows.Add() DGVListaPaises.Rows(IdxLine).Cells(0).Value = paise.ID_PAIS DGVListaPaises.Rows(IdxLine).Cells(1).Value = paise.ID_CONTINENTE DGVListaPaises.Rows(IdxLine).Cells(2).Value = paise.SIGLA_PAIS DGVListaPaises.Rows(IdxLine).Cells(3).Value = paise.DESCRIÇÃO_PAIS DGVListaPaises.Rows(IdxLine).Cells(4).Value = paise.DESCRIÇÃO_CONTINENTE IdxLine = IdxLine + 1 Next Catch ex As Exception End Try 'Aqui oucultamos a linha que contem o codigo do continente, exibimos apenas o nome do continente DGVListaPaises.Columns(1).Visible = False 'Aqui posicionamos o texto das colunas, DGVListaPaises.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DGVListaPaises.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DGVListaPaises.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DGVListaPaises.Focus() 'Aqui Aqui estamos a contar o total de registros no datagridview LblNumeroPais.Text = DGVListaPaises.Rows.Count.ToString() End Sub 1º-aqui ao premirmos a tecla F2 exibimos a lista de paises para escolhermos um pais Private Sub TxtCodigoPaisProvincia_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtCodigoPaisProvincia.KeyDown Try 'aqui ao premirmos a tecla f2 abrimos o formulario com a lista dos paises If e.KeyCode = Keys.F2 Then listFormPaises = New FrmListaPaises listFormPaises.MdiParent = FrmPRINCIPAL listFormPaises.Show() 'aqui exibimos os dados nas textbox TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString End If Catch ex As Exception MsgBox("erro : " & ex.Message, MsgBoxStyle.Exclamation) End Try 'listFormPaises.Dispose() ' listFormPaises.DGVListaPaises.Columns.Clear() 'listFormContinentes.DGVListaContinentes.Rows.Clear() 'Aqui ao premirmos a tecla escap limpamos as textboxes If e.KeyCode = Keys.Escape Then LimparProvincia() End If End Sub aqui no botão procurar pais 2º-aqui ao premirmos o botão exibimos a lista de paises para escolhermos um pais Private Sub btnLocalizarPaisProvincia_Click(sender As Object, e As EventArgs) Handles btnLocalizarPaisProvincia.Click Try listFormPaises = New FrmListaPaises listFormPaises.MdiParent = FrmPRINCIPAL listFormPaises.Show() TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString Catch ex As Exception MsgBox("erro : " & ex.Message, MsgBoxStyle.Exclamation) End Try ' listFormPaises.Dispose() ' listFormPaises.DGVListaPaises.Columns.Clear() ' listFormPaises.DGVListaPaises.Rows.Clear() End Sub eu quero chamar o formulario com a lista dos paises e preencher o codigo do pais na textbox no formulario de cadastro de provincias.

    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sexta-feira, 14 de fevereiro de 2014 19:18
  • no formulario cadastro de provincias eu chamo o formulario com a lista de paises para escolher o pais em que cada provincia pertence, segue o codigo abaixo
    
    1º - Segue o codigo do formulario com o DATAGRIDVIEW  que contem a lista de paises:
    
    
      Private Sub FrmListaPaises_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    
            DGVListaPaises.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
    
            DGVListaPaises.AllowUserToAddRows = False
    
            DGVListaPaises.AllowUserToDeleteRows = False
    
            DGVListaPaises.EditMode = DataGridViewEditMode.EditProgrammatically
    
            DGVListaPaises.AllowUserToResizeColumns = False
    
            DGVListaPaises.AllowUserToOrderColumns = False
    
            'DGVListaPaises.AutoGenerateColumns = True 'Aqui estamos a dizer que gere colunas automaticas
    
           DGVListaPaises.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
    
            DGVListaPaises.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
    
            'Vamos alterar a core das linhas alternadas no grid
    
            DGVListaPaises.RowsDefaultCellStyle.BackColor = Color.White
    
            DGVListaPaises.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque
    
            'Seleciona a selula inteira
    
            DGVListaPaises.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    
           'Não permitir a seleção de multiplas linhas
    
            DGVListaPaises.MultiSelect = False
    
    
           'Aqui criamos as colunas no datagrid
    
            DGVListaPaises.Columns.Add("colID_PAIS", "Codigo")
    
            DGVListaPaises.Columns.Add("colID_CONTINENTE", "Codigo do Continente")
    
            DGVListaPaises.Columns.Add("colSIGLA_PAIS", "Sigla do Pais")
    
            DGVListaPaises.Columns.Add("colDESCRIÇÃO_PAIS", "Nome do Pais")
    
            DGVListaPaises.Columns.Add("colDESCRIÇÃO_CONTINENTE", "Nome do Continente")
    
    
    
            Dim ctxt As New DAL.DANIROSADataContext
    
            Try
    
                Dim listaPaises = From pais In ctxt.LT_Paises
    
                Select pais
    
                Dim IdxLine As Integer = 0
    
                For Each paise In listaPaises
    
                    DGVListaPaises.Rows.Add()
    
                    DGVListaPaises.Rows(IdxLine).Cells(0).Value = paise.ID_PAIS
    
                    DGVListaPaises.Rows(IdxLine).Cells(1).Value = paise.ID_CONTINENTE
    
                    DGVListaPaises.Rows(IdxLine).Cells(2).Value = paise.SIGLA_PAIS
    
                    DGVListaPaises.Rows(IdxLine).Cells(3).Value = paise.DESCRIÇÃO_PAIS
    
                    DGVListaPaises.Rows(IdxLine).Cells(4).Value = paise.DESCRIÇÃO_CONTINENTE
    
                    IdxLine = IdxLine + 1
    
    
                Next
    
            Catch ex As Exception
    
    
            End Try
    
    
            'Aqui oucultamos a linha que contem o codigo do continente, exibimos apenas o nome do continente
    
            DGVListaPaises.Columns(1).Visible = False
    
    
            'Aqui posicionamos o texto das colunas, 
    
            DGVListaPaises.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    
            DGVListaPaises.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    
            DGVListaPaises.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    
            DGVListaPaises.Focus()
    
    
           'Aqui Aqui estamos a contar o total de registros no datagridview
    
            LblNumeroPais.Text = DGVListaPaises.Rows.Count.ToString()
    
        End Sub
    
    1º-aqui ao premirmos a tecla F2 exibimos a lista de paises para escolhermos um pais 
    
    
        Private Sub TxtCodigoPaisProvincia_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtCodigoPaisProvincia.KeyDown
    
            Try
    
                'aqui ao premirmos a tecla f2 abrimos o formulario com a lista dos paises
    
                If e.KeyCode = Keys.F2 Then
    
    
                    listFormPaises = New FrmListaPaises
    
                    listFormPaises.MdiParent = FrmPRINCIPAL
    
                    listFormPaises.Show()
    
                    'aqui exibimos os dados nas textbox        
    
                    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString
    
                End If
    
            Catch ex As Exception
    
                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)
    
            End Try
    
           
    
            'listFormPaises.Dispose()
    
                
    
            ' listFormPaises.DGVListaPaises.Columns.Clear()
    
            'listFormContinentes.DGVListaContinentes.Rows.Clear()
    
    
    
            'Aqui ao premirmos a tecla escap limpamos as textboxes
    
            If e.KeyCode = Keys.Escape Then
    
                LimparProvincia()
    
            End If
    
    
        End Sub
    
    aqui no botão procurar pais
    
    2º-aqui ao premirmos o botão  exibimos a lista de paises para escolhermos um pais 
    
    
        Private Sub btnLocalizarPaisProvincia_Click(sender As Object, e As EventArgs) Handles btnLocalizarPaisProvincia.Click
    
    
            Try
    
    
                listFormPaises = New FrmListaPaises
    
                listFormPaises.MdiParent = FrmPRINCIPAL
    
                listFormPaises.Show()
    
            TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString
    
            Catch ex As Exception
    
                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)
    
            End Try
    
            ' listFormPaises.Dispose()
    
    
            ' listFormPaises.DGVListaPaises.Columns.Clear()
    
            ' listFormPaises.DGVListaPaises.Rows.Clear()
    
    
        End Sub
    
    eu quero chamar o formulario com a lista dos paises e preencher o codigo do pais na textbox no formulario de cadastro de provincias.
    


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sexta-feira, 14 de fevereiro de 2014 19:18
  • Kra é muito simples isso que você quer...

    eu faria assim, criaria uma propriedade chamada PaisSelecionado e implementaria uma lógica pra quando clicar no OK, ou der dois click na linha selecionado, ele preenche esse objeto e fecha o formulário com o DialogResult.OK.

    depois disso na tela que você ta chamando você só precisa pegar o PaisSelecionado e preencher o textbox

    sexta-feira, 14 de fevereiro de 2014 19:39
  • Obrigado|!

    Podes dar um exemplo?

    o problema é que no formulario em que eu estou a chamar o outro formulario é que não esta a funcionar

    Private Sub TxtCodigoPaisProvincia_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtCodigoPaisProvincia.KeyDown

            Try

                'aqui ao premirmos a tecla f2 abrimos o formulario com a lista dos paises

               
    If e.KeyCode = Keys.F2 Then


                    listFormPaises
    = New FrmListaPaises

                    listFormPaises
    .MdiParent = FrmPRINCIPAL

                    listFormPaises
    .Show()

                   
    'aqui exibimos os dados nas textbox       

                    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

                End If

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

          

            '
    listFormPaises.Dispose()

               

           
    ' listFormPaises.DGVListaPaises.Columns.Clear()

            '
    listFormContinentes.DGVListaContinentes.Rows.Clear()



           
    'Aqui ao premirmos a tecla escap limpamos as textboxes

            If e.KeyCode = Keys.Escape Then

                LimparProvincia()

            End If


        End Sub


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sexta-feira, 14 de fevereiro de 2014 21:06
  • Olha eu não sei direito como funciona quando se está trabalhando com um formulário MDI, mas geralmente o método Show(), exibe o formulário e continua a execução do código.

    Se for assim que funciona no seu caso, o formulário nem vai abrir direito e já vai fechar por causa do dispose que você colocou no final.

    Tente colocar ShowDialog(), pois acredito que assim ele só vai executar esse trecho do código:

    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    depois que você fechar o FormListaPaises.

    Caso não funcionar tente fazer o debug passo a passo pra ver o que acontece, ou remover o Try, Catch pra que apareça o erro que está acontecendo.

    sábado, 15 de fevereiro de 2014 01:15
  • bom dia, obrigado!

    fazendo assim e usando o  ShowDialog() ele funciona normalmente,
    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    so que eu não quero que o formulario seja exibido em ShowDialog(), exibindo ele em showdialog não abre dentro do formulario principal por isso to usando o Show....

    usando o metodo show com este codigo, ele so seleciona o primeiro registo do grid, não sei porque.....
    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    obrigado e bom dia, qualquer coisa to aqui atento

    danielbeneditorosa@hotmail.com


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sábado, 15 de fevereiro de 2014 08:22
  • boa tarde amigo, obrigado!

    usando este codigo do geito que ele esta ate funciona  com o ShowDialog()

    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    so que eu não quero usar o  ShowDialog() , eu gostei da sua segunda sugestão :

    Kra é muito simples isso que você quer...

    eu faria assim, criaria uma propriedade chamada PaisSelecionado e implementaria uma lógica pra quando clicar no OK, ou der dois click na linha selecionado, ele preenche esse objeto e fecha o formulário com o DialogResult.OK.

    depois disso na tela que você ta chamando você só precisa pegar o PaisSelecionado e preencher o textbox

    so que não sei como ficaria esta estrutura, no meu Datagridview, nos eventos duplo clik e key press eu usei o seguinte:

     

        Private Sub DGVListaPaises_DoubleClick(sender As Object, e As EventArgs) Handles DGVListaPaises.DoubleClick

            'aqui estamos a dizer que ao fazermos duplo clique selecionamos o dado e fechamos o formulario

            Me.Tag = DGVListaPaises.Focused.ToString()

            Me.DialogResult = DialogResult.OK

            Me.Close()

        End Sub

        Private Sub DGVListaPaises_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DGVListaPaises.KeyPress

            'Aqui estamos a dizer que quando premimos a tecla enter selecionamos o dado no datagrid e fechamos o formulario

            If e.KeyChar = Chr(13) Then

                Me.Tag = DGVListaPaises.Focused.ToString()

                Me.DialogResult = DialogResult.OK

                Me.Close()

            End If

        End Sub

    acho que é aqui onde eu tenho que mexer para que ele funcione ao exibir o formulario com show.

    se tiveres uma sugestão por favor da  uma ajudinha.

    obrigado


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    sábado, 15 de fevereiro de 2014 10:51
  • Então você vai precisar usar algum evento, por exemplo o Closing para buscar o objeto selecionado.

    O que acontece é que quando você usa o show ele não para a execução do código, deixa eu tentar explicar:

    É como se quando você utiliza-se o método ShowDialog o seu formulário FormPaises fala-se para o form principal esperar ele executar o código e só continuar quando ele se fechar, já o método Show faz o contrário, ele simplesmente abre a tela e continua a execução em paralelo do código que vem após o show e do código da FormPaises.

    Por isso ele seleciona somente o primeiro registro, porque o código que vem logo após o Show é o comando para buscar o registro selecionado no DataGridView e quando a tela FormPaises é criada, o primeiro registro do DataGrid esta selecionado.

    A solução pro seu problema seria colocar esse código dentro de um evento.

    No lugar do código abaixo,

    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    esperimente colocar isso aqui:

     listFormPaises.Closing += (sender,args) => {
    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString
    }

    ou se você preferir crie um método com essa assinatura:

    Private Sub FormProdutoCrud_Closing(sender as Object, args as CancelEventArgs) Handles
    listFormPaises.Closing

    TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToString

    End Sub

    Desculpe se tiver alguma sintax errada pois eu trabalho com C#. E sem querer ofender ou ser intrometido, eu recomendaria você a aprender C#.


    sábado, 15 de fevereiro de 2014 11:02
  • Nesse caso primeiro eu criaria uma propriedade PaisSelecionado ao invés de utilizar a propriedade Tag,

    e dai a única coisa que eu alteraria no seu código alem da propriedade seria essa linha:

    Me.Tag = DGVListaPaises.Focused.ToString()
    
    e trocaria por esta
    
    Me.PaisSelecionado = DirectCast(DGVListaPaises.CurrentRow.DataBoundItem,Pais) 

    E depois la no seu form principal 

    TxtCodigoPaisProvincia.Text =  listFormPaises.PaisSelecionado.Codigo
    Não sei se você quer pegar o código do país ou a descrição, mas acho que você consegue enteder.

    sábado, 15 de fevereiro de 2014 11:11
  • bom dia amigo e obrigado pelas dicas e pelo conselho de trocar o vb.net pelo c#

    podes dar um exemplo de como ficaria a estrutura da propriedade PaisSelecionado?

    Nesse caso primeiro eu criaria uma propriedade PaisSelecionado ao invés de utilizar a propriedade Tag,

    e dai a única coisa que eu alteraria no seu código alem da propriedade seria essa linha:

    Me.Tag = DGVListaPaises.Focused.ToString()
    
    e trocaria por esta
    
    Me.PaisSelecionado = DirectCast(DGVListaPaises.CurrentRow.DataBoundItem,Pais) 

    E depois la no seu form principal

    TxtCodigoPaisProvincia.Text =  listFormPaises.PaisSelecionado.Codigo

    Não sei se você quer pegar o código do país ou a descrição, mas acho que você consegue enteder.

    eu quero pegar o codigo do pais...


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    domingo, 16 de fevereiro de 2014 09:29
  • Bom dia, 

    a propriedade é bem simples. Você utilizar utilizar uma Auto-Property, assim:

    Property PaisSelecionado as Pais
    
    //caso você queira utilizar um campo por traz
    //você pode fazer assim
    
    
    Private _PaisSelecionado as Pais
    
    Property PaisSelecionado as Pais 
        Get
           Return _PaisSelecionado
        EndGet
        Set(ByVal value as Pais)
           _PaisSelecionado = value
        EndSet
    EndProperty

    domingo, 16 de fevereiro de 2014 12:37
  • boa tarde!

    ou trabalhar nisso e ja te digo se deu certo u não....

    para te lembrar  eu to a usar o INQ TO SQL emVB.:NET

    Obrigado


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    domingo, 16 de fevereiro de 2014 16:15
  • boa noite amigo eu fiz da seguinte forma:  no formulario com a lista eu fiz assim: criei a propriedade

    PropertyPaisSelecionado AsDAL.Paise

    Private Sub DGVListaPaises_DoubleClick(sender As Object, e As EventArgs) Handles DGVListaPaises.DoubleClick

            'aqui estamos a dizer que ao fazermos duplo clique selecionamos o dado e fechamos o formulario

            Me.PaisSelecionado = DirectCast(DGVListaPaises.CurrentRow.DataBoundItem, Paise)

            Me.DialogResult = DialogResult.OK

            Me.Close()

        End Sub

        Private Sub DGVListaPaises_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DGVListaPaises.KeyPress

            'Aqui estamos a dizer que quando premimos a tecla enter selecionamos o dado no datagrid e fechamos o formulario

            If e.KeyChar = Chr(13) Then

                Me.PaisSelecionado = DirectCast(DGVListaPaises.CurrentRow.DataBoundItem, Paise)

                Me.DialogResult = DialogResult.OK

                Me.Close()

            End If

        End Sub

    e no outro formula onde eu chamo a lista fiz assim:

    Private Sub btnLocalizarPaisProvincia_Click(sender As Object, e As EventArgs) Handles btnLocalizarPaisProvincia.Click

            TxtCodigoPaisProvincia.Enabled = True

            'listFormPaises.DGVListaPaises.Focus()

            Try

                listFormPaises = New FrmListaPaises

                listFormPaises.MdiParent = FrmPRINCIPAL

                listFormPaises.Show()

                TxtCodigoPaisProvincia.Text = listFormPaises.PaisSelecionado.Codigo()

            Catch ex As Exception

                MsgBox("erro  : " & ex.Message, MsgBoxStyle.Exclamation)

            End Try

        End Sub

    so que esta a dar uma mensagem do seguinte erro: Object reference not set to an instance of an object.

    e não esta a selecionar nada para a textbox


    Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server

    domingo, 16 de fevereiro de 2014 19:59