Fórum Primeira letra em Maiúsculo no textbox #484080
30/06/2014
0
public string ConvMaiuscula(string Input)
{
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
return textInfo.ToTitleCase(Input.ToLower());
}
private void nomeTextBox_TextChanged(object sender, EventArgs e)
{
nomeTextBox.Text = ConvMaiuscula(nomeTextBox.Text).ToString();
nomeTextBox.SelectionStart = nomeTextBox.Text.Length;
}
*Windows Form C#.
Jair Souza
Curtir tópico
+ 0Posts
30/06/2014
Rafael Souza
{
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
return textInfo.ToTitleCase(Input.ToLower());
}
else
{
return Input;
}
Gostei + 0
01/07/2014
Rafael Souza
Testei aqui e funcionou
Gostei + 0
01/07/2014
Jair Souza
Gostei + 0
02/07/2014
Jair Souza
Ajustei o código e ficou assim :
public string ConvMaiuscula(string Input)
{
if (Input == "de" || Input == "da" || Input == "do" || Input == "das" || Input == "dos")
{
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
return textInfo.ToTitleCase(Input.ToLower());
}
else
{
return Input;
}
E chamando o método no textchanged do textbox :
private void nomeTextBox_TextChanged(object sender, EventArgs e)
{
nomeTextBox.Text = ConvMaiuscula(nomeTextBox.Text).ToString();
nomeTextBox.SelectionStart = nomeTextBox.Text.Length;
}
Quando digito “joão da silva” o resultado é “joão da silva”, não muda nada...
Se digitar no início do textbox “da” fica “Da”.
Se digitar “da de do ...” fica “Da de do”, a primeira letra da preposição fica em Maiúscula, mas nada mais...
Mas repetindo, o que preciso é que independente de como for digitado maiúscula, minúsculas ou misturado
Que fique a primeira letra de cada palavra em Maiúscula e as demais em minúsculas(São nomes de pessoas), mas somente as preposições “de, da, do, das, dos” fiquem sempre em minúscula...assim : “João da Silva de Linhares dos Santos”.
Será que tem como ?
Gostei + 0
02/07/2014
Rafael Souza
String testo = "olá meu amido da devmedia, testa para ver se da certo";
StringBuilder resposta = new StringBuilder();
string[] beg = testo.Split(' ');
foreach (string s in beg)
{
// Aqui você coloca as preposições
if (!(s.Equals("de") ||
s.Equals("da") ||
s.Equals("do") ||
s.Equals("dos") ||
s.Equals("das")))
{
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
resposta.Append(textInfo.ToTitleCase(s.ToLower()));
}
else
{
resposta.Append(s);
}
resposta.Append(" ");
}
resultado = Olá Meu Amido da Devmedia, Testa Para Ver Se da Certo
Espero ter ajudado.
Att,
Rafael Silva
Gostei + 0
03/07/2014
Jair Souza
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140703-204330.png[/img]
Gostei + 0
07/07/2014
Rafael Souza
return resposta();
Att,
Rafael Silva
Gostei + 0
07/07/2014
Jair Souza
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140707-113033.png[/img]
Gostei + 0
07/07/2014
Rafael Souza
Gostei + 0
07/07/2014
Rafael Souza
return resposta.ToString();
Att,
Rafael Silva
Gostei + 0
07/07/2014
Jair Souza
Algumas não entendi..., na realidade só entendi o if...
Gostei + 0
07/07/2014
Rafael Souza
class Program
{
static void Main(string[] args)
{
Console.WriteLine(LetraMaiuscula("teste de texto"));
Console.Read();
}
public static string LetraMaiuscula(string texto)
{
//Sequência mutável de caracteres
StringBuilder resposta = new StringBuilder();
// Divide seu texto em partes e tranforma em um array
string[] beg = texto.Split(' ');
// Se for preposição retorna sem alteração, se não, retorna a palavra com a primeira letra maiúscula
foreach (string s in beg)
{
// Aqui você coloca as preposições
if (!(s.Equals("de") ||
s.Equals("da") ||
s.Equals("do") ||
s.Equals("dos") ||
s.Equals("das")))
{
// Seta a primeira letra maiúscula
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
resposta.Append(textInfo.ToTitleCase(s.ToLower()));
}
else
{
//retorna a preposição sem alteração
resposta.Append(s);
}
//retorna os respectivos espaçamentos
resposta.Append(" ");
}
//retorna o texto alterado
return resposta.ToString();
}
}
Gostei + 0
07/07/2014
Jair Souza
Gostei + 0
08/07/2014
Jair Souza
public string convMaiuscula(string texto)
{
StringBuilder resposta = new StringBuilder();
string[] beg = texto.Split(' ');
foreach (string s in beg)
{
if (!(s.Equals("de") || s.Equals("da") || s.Equals("do") || s.Equals("dos") || s.Equals("das") || s.Equals("e")))
{
System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
resposta.Append(textInfo.ToTitleCase(s.ToLower()));
}
else
{
resposta.Append(s);
}
resposta.Append(" ");
}
return resposta.ToString();
}
E chamo no evento texchanged do textbox assim :
private void nomeTextBox_TextChanged_1(object sender, EventArgs e)
{
nomeTextBox.Text = convMaiuscula(nomeTextBox.Text).ToString();
nomeTextBox.SelectionStart = nomeTextBox.Text.Length;
}
E deu este erro :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140708-075204.png[/img]
...não está fácil...
Gostei + 0
09/07/2014
Jair Souza
private void nomeTextBox_TextChanged(object sender, EventArgs e)
{
nomeTextBox.Text = convMaiuscula(nomeTextBox.Text);
nomeTextBox.SelectionStart = nomeTextBox.Text.Length;
}private void nomeTextBox_TextChanged(object sender, EventArgs e)
{
nomeTextBox.Text = nomeTextBox.Text.convMaiuscula();
nomeTextBox.SelectionStart = nomeTextBox.Text.Length;
}Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)