Ir para o conteúdo
RubenBolacha

Estruturas compostas e dinâmicas

Mensagens Recomendadas

RubenBolacha

Boas pessoal

Tou a fazer um programa que é um parque de estacionamento em que o utilizador introduz o seu nome e o seu telefone em text's box's e depois tem que escolher qual é o seu carro e o seu modelo em combo box's separadas uma para as marcas e outra para os modelos mas agora tou com um problema em que pretendo ter um botao em que altere os dados da DataGridView caso o utilizador se engane nos dados. O meu objectivo seria perguntar ao utilizador campo a campo os novos dados e voltar a escrever na grelha trocando naquela posição os antigos dados.

O código que já fiz foi este :

Public Sub Alterar()
       Dim dadostemp As info
       Dim n As String
       n = InputBox("Digite o registo a alterar", Me.Text)
       For i = 0 To lista.Count - 1
           With dados
               .nome = lista(i).nome
               .telefone = lista(i).telefone
               .marca = lista(i).marca
               .modelo = lista(i).modelo
           End With
           If dados.nome = n Then
               txtnome.Text = dados.nome
               txttelefone.Text = dados.telefone
               cbmarca.Text = dados.marca
               cbmodelo.Text = dados.modelo
           End If
       Next
       If dados.nome = n Then
           dadostemp.nome = dados.nome
           dadostemp.telefone = dados.telefone
           dadostemp.marca = dados.marca
           dadostemp.modelo = dados.modelo
           txtnome.Text = InputBox("Nome", Me.Text)
           txttelefone.Text = InputBox("Telefone", Me.Text)
           cbmarca.Text = InputBox("Marca", Me.Text)
           cbmodelo.Text = InputBox("Modelo", Me.Text)
           dados.nome = txtnome.Text
           dados.telefone = txttelefone.Text
           dados.marca = cbmarca.SelectedItem
           dados.modelo = cbmodelo.SelectedItem
       End If
   End Sub

Cumprimentos

Ruben Brito

Editado por ribeiro55

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vikcch

Boas,

e o que acontece com esse codigo?

podias ter um campo id em vez de usares o nome como id, tambem podias usar uma classe em vez de uma structure..

quando achas a "info" que queres alterar:

If dados.nome = n Then

não estás a guardar o valor i em lado nenhum para depois saberes qual o index da lista para alterares...

e andas a copiar dados de um lado para o outro vezes demais...

fiz aqui uma coisa parecida parece esta ok..


    Dim n As String
	n = InputBox("Digite o registo a alterar", Me.Text)

	Dim indexAchou As Integer = -1
	For i = 0 To lista.Count - 1

		If lista(i).nome = n Then
			txtnome.Text = lista(i).nome
			txttelefone.Text = lista(i).telefone
			indexAchou = i
			Exit for
		End If								   
	Next

	If indexAchou <> -1 then
		txtnome.Text = InputBox("Nome", Me.Text)
		txttelefone.Text = InputBox("telefone", Me.Text)

		Dim dadostemp As info
		dadostemp.nome = txtnome.Text
		dadostemp.telefone = txttelefone.Text

		lista(indexAchou) = dadostemp
	end if

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
RubenBolacha

Boas,

Não era bem isso mas destes uma ideia da forma de resolver :) obrigada na mesma mano.

Cumprimentos

Ruben Brito

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.