COMO POSICIONAR EM UM INDEX DE UM COMBOBOX

HORICH 11/09/2013 13:23:45
#428706
Galera assim, eu tenho um combobox carregado com as seguintes informações
(Texto -> Index)
[Ô]SP[Ô] -> 1
[Ô]RJ[Ô] -> 2
[Ô]MG[Ô] -> 3
[Ô]AM[Ô] -> 4
[Ô]DF[Ô] -> 5

Ai eu faço um select no banco que ele me trás o numero do estado como sendo 4
como faço para o vb posicionar o index em AM, to tentando aqui mais não vai =(
PEGUDO 11/09/2013 14:22:10
#428709
Se você retorna o número do estado de um banco de dados e, pelo seu exemplo, o [Ô]AM[Ô] é o número 4
você deve se lembrar que o index do Combo começa com Zero, então:
Dim Index As Integer = NumRetornadoDoBD - 1

ComboBox1.SelectedIndex = Index
HORICH 12/09/2013 08:41:34
#428743
Então é que eu dei um exemplo sequencial mais se por exemplo meus index[ô]s estivessem assim:

[Ô]SP[Ô] -> 13
[Ô]RJ[Ô] -> 242
[Ô]MG[Ô] -> 3123
[Ô]AM[Ô] -> 41
[Ô]DF[Ô] -> 53

Como faria para ele saber, já que esses index[ô]s vieram do banco de dados
NILSONTRES 12/09/2013 16:40:26
#428771
Citação:

Então é que eu dei um exemplo sequencial mais se por exemplo meus index[ô]s estivessem assim:


Não muda nada em relação ao que postou nosso amigo PEGUDO.
A não ser que vc utilize para outra coisa, alem do que estamos deduzindo, não entendo como seus index podem mudar como por exemplo SP=13.
TUNUSAT 13/09/2013 09:41:21
#428801
Horich,


Montei este exemplo em VB.Net e C#.Net. Gostaria que você visse para saber se tem a haver com o problema que você está passando.


[][ô]s,
Tunusat.
HORICH 16/09/2013 10:33:21
#428887
Citação:

:
Horich,


Montei este exemplo em VB.Net e C#.Net. Gostaria que você visse para saber se tem a haver com o problema que você está passando.


[][ô]s,
Tunusat.




Tunusat,não é bem esse o problema, vamos ver se eu entendi o exemplo que você montou, é para colocar [ô]Novos[ô] indexes certo ? isso eu consegui fazer da mesma forma que vc fez, muito obrigado pela ajuda pq eu estava com duvida se era uma boa forma de fazer isso.

Citação:

:
Então é que eu dei um exemplo sequencial mais se por exemplo meus index[ô]s estivessem assim:
Não muda nada em relação ao que postou nosso amigo PEGUDO.
A não ser que vc utilize para outra coisa, alem do que estamos deduzindo, não entendo como seus index podem mudar como por exemplo SP=13.



O problema amigo é que eu tenho em um banco de dados uma chave primaria que identifica os meus estados certo ? ou nomes de cidades e etc.

E no combo eu carrego esse index, e no meu banco de dados tenho esses indexes vinculados a clientes, pedidos e etc..

Só que quando ele consulta um pedido eu preciso que o combo posicione no lugar correto, para que se caso seja feita uma alteração ele salve o index certo no banco de dados de novo, por isso o index 13 de SP.
HORICH 16/09/2013 10:40:00
#428889
Citação:

:
Horich,


Montei este exemplo em VB.Net e C#.Net. Gostaria que você visse para saber se tem a haver com o problema que você está passando.


[][ô]s,
Tunusat.




Vamos ver se eu consigo ser mais claro,
No seu exemplo a [Ô]Vivo[Ô] Você atribuiu o index para ela como 15 certo?

[Ô]cboProblemaVB.Items.Add(New AddCbo(15, [Ô]Vivo[Ô]))[Ô]

E na hora que eu seleciono ela no programa o [Ô]ID[Ô] que vc deu como titulo dela aparece como 15.

Esse numero que vai estar salvo no meu banco de dados, porem depois de salvar a primeira vez se ele consultar o que ele salvou, o numero 15 já vai estar salvo no banco, então preciso que ele pegue o 15 que esta no banco e já posicione o combo neste index ou ID como esta no programa. esta é a duvida
TUNUSAT 16/09/2013 13:18:10
#428896
Horich,


O [Ô]15[Ô] da [Ô]Vivo[Ô] não é index da combo, mas chave primária na tabela de operadoras de telefonia.
Meu problema era este em outra ocasião....
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=417071
Eu precisava recuperar a PK e o Texto (os dois dados) gravados na combobox.
E só conseguia recuperar o index da combo...

Aqui no VBMania tem um exemplo do CLEVERTON que explica que o ListItem ficou ruim de trabalhar e precisamos usar uma estrutura dentro da combo:
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8645

Para o seu problema eu limparia a Combo com [Ô].Clear[Ô] e depois simplesmente recarregaria a combo baseada no BD. Isto deve ser feito sempre que carregar o formulário.
Dependendo do número de registros, acredito que isto é mais interessante do que gastar processamento e código fonte fazendo correção de um ponto específico na combobox. Mas se forem muitos registros e onerar demais a deleção-recarga, então sugiro que seja modificada a forma de preencher a combobox (preenchendo somente um pedaço -> Exemplo: Somente que começa por [Ô]A[Ô] e depois o usuário escolhe a primeira letra.) ou usado outro objeto.
Tem também o problema da manutenção. O programador que pegar a manutenção deste código fonte vai ficar maluco para entender como a combo atualiza um único campo de um registro.


[][ô]s,
Tunusat.
NILSONTRES 16/09/2013 13:38:15
#428899
Citação:

O problema amigo é que eu tenho em um banco de dados uma chave primaria que identifica os meus estados certo ? ou nomes de cidades e etc.


Ai que ta, vc tem que salvar o index no cadastro do cliente como sendo o index correspondente da combo UF.
Depois no retorno é só carregar a combo UF com o index equivalente.
HORICH 17/09/2013 20:28:48
#428985
Citação:

:
Horich,


O [Ô]15[Ô] da [Ô]Vivo[Ô] não é index da combo, mas chave primária na tabela de operadoras de telefonia.
Meu problema era este em outra ocasião....
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=417071
Eu precisava recuperar a PK e o Texto (os dois dados) gravados na combobox.
E só conseguia recuperar o index da combo...

Aqui no VBMania tem um exemplo do CLEVERTON que explica que o ListItem ficou ruim de trabalhar e precisamos usar uma estrutura dentro da combo:
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8645

Para o seu problema eu limparia a Combo com [Ô].Clear[Ô] e depois simplesmente recarregaria a combo baseada no BD. Isto deve ser feito sempre que carregar o formulário.
Dependendo do número de registros, acredito que isto é mais interessante do que gastar processamento e código fonte fazendo correção de um ponto específico na combobox. Mas se forem muitos registros e onerar demais a deleção-recarga, então sugiro que seja modificada a forma de preencher a combobox (preenchendo somente um pedaço -> Exemplo: Somente que começa por [Ô]A[Ô] e depois o usuário escolhe a primeira letra.) ou usado outro objeto.
Tem também o problema da manutenção. O programador que pegar a manutenção deste código fonte vai ficar maluco para entender como a combo atualiza um único campo de um registro.


[][ô]s,
Tunusat.




Certo, ajudou muito essa sua dica, só que por exemplo eu ja montei minha solução toda baseada nesse carregamento =(
porem agora na hora que eu consulto um cliente, o index já esta carregado no combobox agora preciso que quando ele consulte o cliente, o index que veio do cadastro dele, posicione o combo no lugar certo, porem isso que eu não acho como se faz =(
TUNUSAT 18/09/2013 09:30:48
#428998
Resposta escolhida
Mas Horich,


Para você posicionar o Index, você deve procurar o index na lista ou procurar pela chave primária...
... exemplo rápido:


1º) Crie um botão [Ô]btnProcura[Ô] naquele meu exemplo [Ô]ComboProblema[Ô].
2º) Adicione o código abaixo para o clique do botão:

-------------------

private void btnProcura_Click(object sender, EventArgs e)
{
if (txtNome.Text != [Ô][Ô])
{
cboProblema.SelectedIndex = cboProblema.FindString(txtNome.Text);
}
}

-------------------

Vou melhorar aquele exeplo depois te passo.


[][ô]s,
Tunusat.
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas