merhaba arkadaşlar. Uygulamalarınızda kullanmak üzere bir textbox kontrol oluşturdum. Amacı ise yazımda kolaylık sağlaması. Kontrol'ün properties kısmından mode'unu hepsi büyük, hepsi küçük, normal ve başharfler büyük olarak ayarladığınızda metin ayarladığınız mode'a göre şekil alıyor.kontrol'ün kodları aşağıdadır.
namespace CustomWinFormControls
{
public enum TEXTMODE
{
TO_UPPER,
TO_LOWER,
NORMAL,
FIRST_UPPER
}
public class ToUpperTextBox:TextBox
{
TEXTMODE mode;
public TEXTMODE Mode
{
get { return mode; }
set { mode = value; }
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
if (e.KeyChar==Convert.ToChar(Keys.Back))
{
return;
}
if (this.Text.Length != 0)
{
if (this.Text[this.Text.Length - 1] == ' ' && Mode == TEXTMODE.FIRST_UPPER)
{
this.Text += e.KeyChar.ToString().ToUpper();
e.Handled = true;
}
}
else
{
this.Text += e.KeyChar.ToString().ToUpper();
e.Handled = true;
}
}
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
switch (mode)
{
case TEXTMODE.TO_UPPER:
this.Text = this.Text.ToUpper();
break;
case TEXTMODE.TO_LOWER:
this.Text = this.Text.ToLower();
break;
//case TEXTMODE.FIRST_UPPER:
// if (this.Text.Length!=0)
// {
// string[] kelimeler = this.Text.Split(' ');
// for (int i = 0; i < kelimeler.Length; i++)
// {
// kelimeler[i] = kelimeler[i][0].ToString().ToUpper() + kelimeler[i].Substring(1).ToLower();
// this.Text += kelimeler[i] + " ";
// }
// }
// break;
default:
break;
}
//this.Text = this.Text.ToUpper();
this.Select(this.Text.Length, 0);
}
}
}