none
Como Diferenciar letras MAIÚSCULA e minúscula vb.net

    Question

  • No evento LostFocus do ComboBox1 eu estou usando o código abaixo

            If ComboBox2.Items.IndexOf(ComboBox2.Text) = -1 Then
                ComboBox2.Items.Add(ComboBox2.Text)
            End If

    eu estou gravando a string que digito no combobox para fazer pesquisas.

     

    O usuário digita "AABenardi" grava no combobox

    se o usuário digitar "AaBernardi" também esta gravando no combobox

    O usuário digita "PayPal" grava no combobox

    O usuário digita "Paypal" também esta gravando no combobox

    O usuário digita "CardPlay" grava no combobox

    O usuário digita "CardPLAY" também esta gravando no combobox

    Eu precisava de algo que não gravasse no comboBox se o texto for igual independente de qualquer letra maiúscula (no início, meio ou no fim da string)

    Se no combobox tiver gravado "AABernardi" e o usuário digitar "AaBernardi" ou "aaBErnardi" eu precisava que não gravasse no combobox

    Se alguém puder me ajudar com o código fico muito grato.

    Tuesday, March 30, 2010 1:12 AM

Answers

  • Olá A A Bernardi,

    Experimenta este código:

            Dim str, str2 As String
            str = ComboBox1.Text
    
            If ComboBox1.Items.Count = 0 Then
                ComboBox1.Items.Add(str)
                Exit Sub
            End If
    
            For Each str2 In ComboBox1.Items
                If str2.ToUpper = str.ToUpper Then
                    Exit Sub
                End If
            Next
            ComboBox1.Items.Add(str)
    Aqui funcionou perfeitamente!
    • Marked as answer by A A Bernardi Tuesday, March 30, 2010 6:12 PM
    Tuesday, March 30, 2010 5:42 PM

All replies

  • Olá Bernardi,

    Utilize sempre Maiúsculas em suas operações. Veja:

    If ComboBox2.Items.IndexOf(ComboBox2.Text.ToUpper()) = -1 Then
                ComboBox2.Items.Add(ComboBox2.Text.ToUpper())
            End If

    []s.

    Alan. Twitter
    Tuesday, March 30, 2010 11:07 AM
  • Eu estou montando o aplicativo para dar suporte online para 6 sites diferentes, onde cada usuário já está cadastrado com possíveis nomes diferentes, só que os nomes podem estar escritos de muitas maneiras...O combobox eu estou usando para fazer pesquisa, dai quando o usuário digitar o nome no combo faz a pesquisa e já fica gravado no combo se o nome existir, faz a pesquisa e não grava, independente da meneira que ele esteja gravado no site.

    Veja,

    Se o usuário tem o nome gravado no site assim "AABernardi" dai ele resolve digitar no combo assim "AbeRNARdi" vai fazer a pesquisa, só que não pode gravar no combo porque o  nome já existe. Eu não posso gravar no combo tudo maiúscula, ou  tudo minúscula, ou a primeira  letra maiúscula, se eu fizer isso, estarei confundindo o usuário.

    Eu só gostaria de saber se tem uma maneira de não gravar no combo um nome duplicado, independente da maneira que ele já esteja gravado.

    Se no combo estiver assim

    "AABernardi"

    Se o usuário digitar "AaBernardi" faz a pesquisa e não grava no combo.

    "ManoManoMia"

    Se o usuário digitar "ManoManomia" faz a pesquisa e não grava no combo.

    etc...

     

     

    Tuesday, March 30, 2010 1:17 PM
  • Use o método Compare do objeto String. Ex.: String.Compare("Leo", "leo", true)

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com | http://lblima.blogspot.com
       
    Tuesday, March 30, 2010 1:23 PM
    Moderator
  • Obrigado Leonardo pela dica, só que eu não sei de como usar o método .Compare

    Não daria pra ti me mostra ai com o código !!

     

    Tuesday, March 30, 2010 1:29 PM
  • É dessa forma que eu disse mesmo, se colocar False ele vai levar em consideração letras maiúsculas e minúsculas. Caso sejam diferente ele retorna 1.

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com | http://lblima.blogspot.com
       
    Tuesday, March 30, 2010 2:07 PM
    Moderator
  • Usando o que o Leonardo falou seu Código ficaria assim:

    For i As Integer = 0 To ComboBox1.Items.Count - 1
                If String.Compare(ComboBox2.Items(i).ToString(), ComboBox2.Text, True) = -1 Then
                    ComboBox2.Items.Add(ComboBox2.Text)
                    Exit For
                End If
            Next

    []s.

    Alan. Twitter
    Tuesday, March 30, 2010 2:28 PM
  • O código ai não está dando certo, nem se quer esta gravando no combo se o combo estiver vazio

    Se eu colocar alguns items no combo dai grava se a primeira letra não for igual a nenhum item que está no combo, e ainda grava duplicando.

    Já tentei mudar alguma coisa ai mais não ta adiantendo nada.

    Tuesday, March 30, 2010 5:02 PM
  • Olá A A Bernardi,

    Experimenta este código:

            Dim str, str2 As String
            str = ComboBox1.Text
    
            If ComboBox1.Items.Count = 0 Then
                ComboBox1.Items.Add(str)
                Exit Sub
            End If
    
            For Each str2 In ComboBox1.Items
                If str2.ToUpper = str.ToUpper Then
                    Exit Sub
                End If
            Next
            ComboBox1.Items.Add(str)
    Aqui funcionou perfeitamente!
    • Marked as answer by A A Bernardi Tuesday, March 30, 2010 6:12 PM
    Tuesday, March 30, 2010 5:42 PM
  • Pois é meu amigo Herbert... Aqui também funcionou perfeitamente !!. rsrs

    Agora deu tudo certinho.


    Obrigado amigo.

    Que DEUS te abençoe

    Tuesday, March 30, 2010 6:11 PM
  • Por Nada!

    Sempre que precisar é só postar!

    Tuesday, March 30, 2010 7:09 PM
  • Por Nada!

    Sempre que precisar é só postar!

    Tuesday, March 30, 2010 7:09 PM
  • só por curiosidade, existe uma forma built-in(pelo menos uma) de diferenciar maiúsculas de minúsculas:

     

                    Dim charArray() As Char = "Isto é um TESTE".ToCharArray
    
                    For Each c As Char In charArray
                        If Char.IsUpper(c) Then
                            Debug.WriteLine(String.Format("O caracter '{0}' está em maiúscula", c))
                        Else
                            Debug.WriteLine(String.Format("O caracter '{0}' está em minúscula", c))
                        End If
                    Next
    só por curiosidade!
    Jorge Paulino
    Visual Basic em Português
    http://vbtuga.blogspot.com/

    Tuesday, March 30, 2010 7:43 PM