Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

manuelbarreto

Problema com o IF

Mensagens Recomendadas

manuelbarreto

 Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_cod_forne.KeyPress
        If txt_cod_forne.Text = cb_fornecedor.ValueMember Then
            cb_fornecedor.Items.Add(cb_fornecedor.DisplayMember )
        End If

    End Sub

eu tenho uma combobox e uma textbox eu ao inserir o codigo do fornecedor na caixa de texto queria que aparecesse na combobox o nome desse fornecedor.

tenho este código mas n me está a dar alguem sabe como posso fazer??

obg :wallbash:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
manuelbarreto

esquece n é bem assim isto é um trabalho de fim de curso e pediram-me para fazer isto agora sei lá como se faz é por isso que recorri aqui ao forum

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

O meu "Esquece" foi porque tinha dito uma coisa mal.

Olhando para o teu código, não faz sentido o que tens..

 Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_cod_forne.KeyPress
        If txt_cod_forne.Text = cb_fornecedor.ValueMember Then
            cb_fornecedor.Items.Add(cb_fornecedor.DisplayMember )
        End If

    End Sub

Se tu queres ir buscar o ValueMember relativo ao Texto que digitaste, não fará mais sentido teres antes:

If Combobox1.ValueMember = Textbox1.Text Then
' Faz procedimentos
End if

Neste caso, a combobox será igual ao que estiver digitado na textbox, coisa que não acontecia com o teu código em cima, pois estavas a dizer que a textbox iria ser igual à combobox..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pwyll

Varias coisas.... :

O evento KeyPress ocorre cada vez que carregas numa tecla enquanto o focus estiver nesse control. Por isso, não me parece que seja o melhor local para mostrares a descricao do codigo que e introduzido na textbox.

Se calhar a LostFocus é mais apropriada.

Fazer isto: "if a = b then" é igual a fazer "if b = a then"

Estamos apenas a testar se uma variavel é igual a outra.

esquece n é bem assim isto é um trabalho de fim de curso e pediram-me para fazer isto agora sei lá como se faz é por isso que recorri aqui ao forum

Se calhar entao era bom nao ser de fim de curso...

Ve-la se isto te ajuda:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dt As New DataTable
        dt.Columns.Add("Cod", System.Type.GetType("System.Int32"))
        dt.Columns.Add("Descricao", System.Type.GetType("System.String"))

        Dim dr As Data.DataRow = Nothing
        For i = 0 To 9
            dr = dt.NewRow
            dr("Cod") = i
            dr("Descricao") = "Teste " & i.ToString
            dt.Rows.Add(dr)
        Next

        ComboBox1.DisplayMember = "Descricao"
        ComboBox1.ValueMember = "Cod"
        ComboBox1.DataSource = dt
    End Sub

    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
        ComboBox1.SelectedValue = TextBox1.Text
    End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
manuelbarreto

n consegui fazer nada com esse código.

Mas ninguem me sabe dizer como posso fazer para ir ver o DisplayMember de um que tem um determinado código??

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

@manuelbarreto

E queres saber porque não conseguiste fazer nada com esse código?

Porque estás à espera que te ponham aqui uma resolução copy-paste para o teu problema.

Guess what, não vai acontecer :nono:

Já disse isto mais que uma vez, mas vou repetir: se é de final de curso, mestrado ou vida ou morte, não interessa rigorosamente nada. Não traz qualquer informação que nos faça entender o teu problema.

Se em vez de "não consegui fazer nada com esse código" tentasses entender como funcionam as coisas, terias chegado lá num ápice. As pessoas vêm com vontade e por iniciativa própria aqui para te tentar resolver o problema e levam com um "não consegui fazer nada com esse código"...

Mesmo que não tenhas conseguido fazer nada com esse código, tenta perceber porquê, e já ganhaste o dia a aprender!

O código do Pwyll serve para demonstrar uma combobox alimentada via datasource e de como deves fazer para seleccionar determinado item, no seu valor, através de uma textbox. Está lá a lógica toda.

O que é o display member senão o próprio texto da combobox? Podes até simplesmente apanhar o displaymember do selecteditem com o .Text.

@bioshock

Os Edits só fazem sentido se a mensagem original lá estiver.

Ou se alteram directamente na mensagem e se salientam, ou acrescentas à mensagem.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pwyll
n consegui fazer nada com esse código.

Mas ninguem me sabe dizer como posso fazer para ir ver o DisplayMember de um que tem um determinado código??

Porque? Que erros tiveste? Que parte do codigo nao percebeste? Como o adaptaste ao teu caso? Quanto tempo perdeste a tentar perceber o que fazia?

Pois.... é mais facil fazer copy.... paste..... oh!!! nao funciona..... "nao consegui fazer nada", é exactamente esse tipo de atitude que faz com que ainda nao saibas como ir buscar o "displaymember".

As minhas desculpas mas, entendo este forum como um local priveligiado para se tirar duvidas e aprendermos com os erros uns dos outros. Entendo ainda que um local como este funciona com a boa vontade de todos e com um espirito de entre ajuda normalmente comum a quem quer aprender.

Agora se procuras um local onde te façam os "trabalhos de casa" podes fazer uma busca no Google, existem varios sites para isso.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
passado

Não sei qual é o proposito, mas se é apenas inserir o codigo e fazer aparecer o nome consoante o codigo, nao seria mais facil mostrar o nome numa label e colocar um filtro a BD no textchanged da textbox?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
manuelbarreto

desculpa-me por alguma coisa mas eu tive a ver o código o que esta parte aqui do código n percebi

Dim dr As Data.DataRow = Nothing
        For i = 0 To 9
            dr = dt.NewRow
            dr("Cod") = i
            dr("Descricao") = "Teste " & i.ToString
            dt.Rows

principalmente isto  dr("Descricao") = "Teste " & i.ToString que n sei o que é o Teste

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Aí ele está a preencher a datatable que tinha acabado de criar, com dados de exemplo, apenas para tu veres uma combobox alimentada com datasource e membros.

DR <--- DataRow (criada por o método NewRow da datatable)

DR("Descricao") = "Teste" & i.ToString <--- Coluna "descricao" da linha, "igual a" "Teste" mais o número de controlo usado no ciclo For.

O "Teste" é uma string.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

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.