Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

manuelbarreto

Problema com o IF

Recommended Posts

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:

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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..

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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??

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.