Öncelikle herkese merhaba, başlıktan da anlaşılacağı gibi ben textBox'a girilen her 4 karakterden sonra bir boşluk bırakan programı yazmak istiyorum. Nasıl yapılacağını bilenler kodlarını paylaşırsa çok sevinirim. Şimdiden çok teşekkürler
public class CustomTextBox : TextBox
{
//Space tuşunu devre dışı bıraktım. Devre dışı bırakmadan da çözüm üretilebilir.
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
if (e.Key == Key.Space)
{
e.Handled = true;
}
}
//5. karakteri girerken boşluk bırakılsın istiyorsanız.
protected override void OnPreviewTextInput(TextCompositionEventArgs e)
{
int length = this.Text.Split(' ').Last().Length;
if (length == 4)
{
this.AppendText(" ");
this.Select(this.Text.Length, 0);
}
base.OnTextInput(e);
}
//4. karakter girdikten sonra direk boşluk bırakılsın istiyorsanız.
//protected override void OnPreviewTextInput(TextCompositionEventArgs e)
//{
// int length = this.Text.Split(' ').Last().Length;
// if (length == 4)
// {
// this.AppendText(" ");
// this.Select(this.Text.Length, 0);
// base.OnTextInput(e);
// }
// else
// {
// base.OnTextInput(e);
// length = this.Text.Split(' ').Last().Length;
// if (length == 4)
// {
// this.AppendText(" ");
// this.Select(this.Text.Length, 0);
// }
// }
//}
}
class CustomTextBox : TextBox
{
protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
}
else
{
base.OnPreviewKeyDown(e);
}
}
protected override void OnTextChanged(EventArgs e)
{
int length = this.Text.Split(' ').Last().Length;
if (length == 4)
{
this.AppendText(" ");
this.Select(this.Text.Length, 0);
}
base.OnTextChanged(e);
}
}
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.