COMO POSICIONAR EM UM INDEX DE UM COMBOBOX
(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 =(
você deve se lembrar que o index do Combo começa com Zero, então:
Dim Index As Integer = NumRetornadoDoBD - 1
ComboBox1.SelectedIndex = Index
[Ô]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
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.
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.
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.
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
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.
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.
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 =(
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.