Página 1 de 1

Posicionar cursor início do MaskedTextBox ao edita data C#

Enviado: 20 Jan 2025 09:51
por porter
Olá pessoal,

Estou enfrentando um problema com o controle MaskedTextBox. Quando o cursor entra no campo, quero que ele posicione automaticamente no início da data para que eu possa digitar diretamente. No entanto, da forma como estou implementando, o cursor está sendo posicionado no final da data preenchida.

Estou utilizando o seguinte código no evento Enter:

Código: Selecionar todos

private void mskdata_Enter(object sender, EventArgs e)
{
    mskdata.SelectionStart = 0;
    mskdata.SelectionLength = mskdata.Text.Length;
}
Esse comportamento funciona corretamente se o campo estiver vazio, permitindo que o cursor comece no início para digitar a data. Porém, quando o campo já está preenchido com uma data, o cursor continua parando no final.

Gostaria de que, mesmo com o campo já preenchido, o cursor iniciasse no começo, permitindo substituir a data sem a necessidade de apagar manualmente.

Alguém pode me ajudar a ajustar isso? Obrigado!

C#

Posicionar cursor início do MaskedTextBox ao edita data C#

Enviado: 20 Jan 2025 12:30
por JoséQuintas
Apenas sugestão:
Veja como controla a posição.
Primeiro posicione no início, e depois marque o conteúdo.
Verifique se não é comportamento normal de seleção.
No editor de textos, numa situação parecida com essa, seta pra trás posiciona no começo, e seta pra frente posiciona no final.

Mesmo assim, se pensar direito, é mais comum o usuário alterar dia/mês do que a data inteira.
Marcar a data pode ser até improdutivo, só vai servir pra digitar completa e/ou limpar.
Avalie isso também, antes de quebrar a cabeça.