1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida em combobox em VB 2008

Discussão em 'Programação' iniciada por Fil__, 9 de Setembro de 2008. (Respostas: 31; Visualizações: 3323)

  1. Fil__

    Fil__ Power Member

    Tenho uma duvida. É o seguinte, criei a minha BD no SQL Server 2005 Express Edition e no VB 2008 criei combobox. Liguei as coisas e está tudo a funcionar. So existe um pormenor que gostava de resolver. É que na combobox ao seleccionar as varias opçoes ele assume a que escolhemos mas preenche a largura dos 250 caracteres que eu defini como maximo da string. Queria que em vez de aparecer os 250 caracteres so aparecessem os caracteres usados na palavra. Estou a fazer-me perceber na minha duvida? Brigado malta pela ajuda :x2:
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Trim? Replace(variavel, chr(0), "")? (ou equivalentes VB.NET, que isto é VB6)
     
  3. Fil__

    Fil__ Power Member

    E que a combobox fica preechida com a palavra que tem 30 caracteres mas defini que a palavra pode ter ate 250 caracteres. O que acontece e que ao seleccionar a palavra de 30 ele vai preencher o resto dos 220 caracteres que faltam, nao com letras mas com space, ou seja, tenho que apagar os 220 espaços para ver a palavra que seleccionei na combobox. Nao sei se me estou a explicar bem...
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Se preenche com espaços, usa o Trim. No VB6 era tão simples como
    Código:
    x = Trim("   Hello World          ") ' logo, x = "Hello World"
    No VB.NET também há-de existir o Trim de alguma forma. Procura nas funções que agem sobre strings :P
     
  5. Fil__

    Fil__ Power Member

    Nao sei e como aplicar. Pesquisei um pouco e fiz umas experiencias mas os espaços em branco mantem-se
     
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Os espaços aparecem-te onde? Quando tentas receber o valor da opção escolhida?
     
  7. Fil__

    Fil__ Power Member

    | ___________________| este é o tamanho da combobox e ao seleccionar um item aparece assim

    |...............................| em que os pontinhos sao uma barra que ocupa o espaço e a palavra esta no inicio da combobox

    |teste..........................................................................................................................................|

    percebes mais ou menos a ideia?
     
  8. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Hmm ... não sei se percebi, mas se for o que acho, em vez de fazeres Combo.Additem string, faz Combo.Additem Trim(string).
     
  9. Armadillo

    Armadillo Folding Member

    o que me parece que se passa é que a "listbox" da combobox está a ocupar espaço a mais (e que os items não têm 250 caracteres de tamanho).
    Faz uma coisa: verifica o len de todos os items na combobox e vê se estes retornam realmente 250.

    cumps
     
  10. Fil__

    Fil__ Power Member

    retornam os 250 sim Armadillo. Eu percebo a ideia do Trim, so que nao consigo aplicar
     
  11. Armadillo

    Armadillo Folding Member

    verifica mesmo se os espaços são mesmo espaços e não outros caracteres especiais
     
  12. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Daí o replace.

    Para confirmar o char, Fil__, faz algures um Msgbox Asc(Mid(Combo.List(1), 249, 1))
     
  13. Fil__

    Fil__ Power Member

    Mas Kayvlim isso nao é C? E que nao tou mesmo a perceber onde aplicar isso. Nao estou a perceber
     
  14. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Aquilo é VB6, e penso que em .NET não seja muito diferente.
    Em algum lado fazes os additems à combo, não é? No fim dos additems todos, faz essa msgbox.
    O que isso faz é mostrar uma caixa de texto com o caracter ASCII correspondente ao penúltimo byte do item em segundo lugar na combo.
    Isto é, se a combo tivesse os valores
    Código:
    KLJDSGSDGLKHSGGSA
    LDHGDHGAKHDG[B][COLOR=red]A[/COLOR][/B]V
    AFJHAHGLKHWEKLHG
    Ele mostraria uma caixa de texto a dizer "65" (ASCII de "A", que está como penúltimo caracter do segundo item).

    O objectivo é sabermos qual é o char que é repetido até preencher os 250 caracteres de cada item. Penso que seja 32 (espaço) ou 0 (null).
     
  15. Fil__

    Fil__ Power Member

    Os items dessa combobox vêm da bd, ou seja, meto na bd os dados e depois chamo o dataset que me interessa para preecher essa combobox. Sim, o espaço restante é ocupado com space lol. Brigado malta pela ajuda, mas isto ta complicado porque nao tou mesmo a alcançar lol
     
  16. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    E colocares um Trim() no AddItem?
    Como eu já disse, na linha onde fazes AddItem linha, faz AddItem Trim(linha).
     
  17. Fil__

    Fil__ Power Member

    Mas isso meto onde? No codigo em vb ou no sql? Percebes? Alem de que no meu codigo nao tenho nenhum AddItem. Eu nao sei onde meter o Trim() ...
     
  18. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Como é que preenches a combo?
     
  19. Fil__

    Fil__ Power Member

    Uso o dataset. Isso invalida o trim?
     
  20. Armadillo

    Armadillo Folding Member

    mostra-nos o código. ou estás a usar os wizards para isso?
     

Partilhar esta Página