Inquiridor
Como exibir um formulario no modo show e carregar os dados na textbox?

Discussão Geral
-
Todas as Respostas
-
-
-
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
-
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
-
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
-
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
-
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
-
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
-
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.
-
bom dia, obrigado!
fazendo assim e usando o ShowDialog() ele funciona normalmente,
TxtCodigoPaisProvincia.Text = listFormPaises.DGVListaPaises.CurrentRow.Cells(0).Value.ToStringso 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.ToStringobrigado 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
-
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
-
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.ClosingTxtCodigoPaisProvincia.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#.
-
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.
-
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
-
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
-
-
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