Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Formatiranje TextBoxa

[es] :: .NET :: .NET Desktop razvoj :: Formatiranje TextBoxa

[ Pregleda: 2841 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.179.*



+1 Profil

icon Formatiranje TextBoxa20.11.2008. u 18:40 - pre 187 meseci
Imali neko ideju kako da formatiram TextBox tako da u njega mogu da se ukucavaju samo slova i space, a da je sve ostalo zabranjeno. Takodje, interesuje me da li bi bilo moguce, i kako, da se automatski bez obzira da li su slova ukucana mala ili velika, na izlazu iz TextBoxa dobije uvek ista forma stringa gde je pocetno slovo veliko i slovo koje se nalazi nakon space. Npr, ukucam "MiLAn miSKoviC", a na izlazu kada se taj string upisuje u bazu da e automatski konvertuje u string oblika "Milan Miskovic". Malo je zapetljano, ali se nadam da sam bar delimicno uspeo da objasnim sta mi tacno treba :)
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: Formatiranje TextBoxa21.11.2008. u 00:18 - pre 187 meseci
Napravis dve odvojene nasledjene klase :
1,) Jedna za formatiranje obicnog teksta i ne-brojeva npr. (FormatStringTextBox )
2.) Jedna za formatiranje imena i malih i velikih slova npr. (FormatNameTextBox )
i za svaku overajdujes OnTextChanged ili OnKeyPress koji se poziva pre samog ispisa u TextBox
Code:

class FormatStringTextBox : TextBox 
 {
      
   protected override void OnTextChanged (EventArgs e)
   {
      base.OnTextChanged (e);
   }
   protected override void OnKeyPress(KeyPressEventArgs e)
   {
       // base.OnKeyPress(e); ili handlujes dalje na OntextChanged znaci ispis se tamo zavrsava 
        //e.Handled = true; ili odustajes od ispisa u text box tj. ne poziva se OnTextChanged 
   }
}
class FormatNameTextBox : TextBox 
{
    protected override void OnTextChanged (EventArgs e)
    {
        //// 
    }
   protected override void OnKeyPress(KeyPressEventArgs e)
   {
       // base.OnKeyPress(e); 
        //    e.Handled = true; 
   }
}

Viva lollapalooza
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.neobee.net.



+987 Profil

icon Re: Formatiranje TextBoxa21.11.2008. u 08:25 - pre 187 meseci

A mozes samo da obradis KeyPress event u "obicnom" text box-u, tako da prihvata samo odredjene karaktere.

Code:

       void tb_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(char.IsLetter(e.KeyChar) || char.IsWhiteSpace(e.KeyChar))) 
                e.Handled = true;
        }


 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
*.zrlocal.net.



+1 Profil

icon Re: Formatiranje TextBoxa21.11.2008. u 08:54 - pre 187 meseci
Hvala svima, ali DeerBeer tvoj predlog mi je malo zbunjujuci, dok mi je Igorov dosta prijenciv i lako primenjiv. Ali Igore imasli neku slicnu ideju kako bi mogao realizovati na slican nacin onaj problem oko velikih slova na pocetku unosa i kod unosa nakon space?
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
80.93.229.*

ICQ: 20785904


+4 Profil

icon Re: Formatiranje TextBoxa21.11.2008. u 12:45 - pre 187 meseci
prilikom unosa u bazu, odradis sledece:
- string.Split tog stringa
-za svaki string u dobijenom nizu, string[0] = Char.ToUpper(string[0])
-ponovo od toga generesise string i upises ga
ili
mozes da nadjes indexe karaktera " " unutar stringa, i onda karaktere iza da kapsujes...
ili
Prilikom handlovanja novog karaktera, gledas da li se postojeci text u textboxu zavrsava na " " ili je prazan. ako jeste, kapsujes taj novi karakter
ili
regularni izrazi

 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.180.*



+1 Profil

icon Re: Formatiranje TextBoxa22.11.2008. u 15:28 - pre 187 meseci
Mozeli jos malo objasnjenje oko dela koji se odnosi konkretno na:
"
mozes da nadjes indexe karaktera " " unutar stringa, i onda karaktere iza da kapsujes...
ili
Prilikom handlovanja novog karaktera, gledas da li se postojeci text u textboxu zavrsava na " " ili je prazan. ako jeste, kapsujes taj novi karakter
ili
regularni izrazi
"
Ne razumem sta znaci "kapsujes"?

Sada sam probao prvi nacin, sa metodom .Split(), koji mi je delovao prijemciv, ali na kraju sam se zakucao jer on meni podeli pocetni string(recenicu) na delove(reci) iskljucujuci space , ali mi zato dalje ne dozvoljava da reci podelim na slova, jer se metoda .Split() odnosi na separatore, a koji bi separator mogao koristiti u reci? Cak i kad bi mi dozvolio podelu reci na slova nisam bas siguran kako bih uspeo da slova tacno po redu posle vratim u recenicu?!

Ako postoji resenje za ovu podelu vrlo rado bih ga koristio, jer mi je najprihvatljivija iz prostog razloga jer ove druge predloge bas i nisam u celosti skontao

[Ovu poruku je menjao bigguy dana 22.11.2008. u 20:03 GMT+1]

[Ovu poruku je menjao bigguy dana 22.11.2008. u 20:09 GMT+1]
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
77.46.231.*



+987 Profil

icon Re: Formatiranje TextBoxa22.11.2008. u 20:54 - pre 187 meseci
Najprostije:

Code:


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            StringBuilder text = new StringBuilder(((TextBox)sender).Text);
            for (int i = 1; i < text.Length; i++)
                if (char.IsWhiteSpace(text[i - 1])) text[i] = char.ToUpper(text[i]);

            ((TextBox)sender).Text = text.ToString();
            ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
        }


Daleko od najefikasnijeg ali dobro obradjuje Copy-Paste situacije.

S obzirom da ti korisnici nece pisati "Rat i Mir" u textbox-u, nema veze sto uvek obradjuje ceo string.
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
..178.212.adsl.dyn.beotel.net.

ICQ: 20785904


+4 Profil

icon Re: Formatiranje TextBoxa23.11.2008. u 01:48 - pre 187 meseci
sto se ovog resenja tice:

1. ne kapsuje se prvo slovo. treba dodati
Code:
(if (text.Length>0) text[0] = char.ToUpper(text[0]);


2. ovako odokativno imam utisak da ce uleti u infinite loop
Code:
 ((TextBox)sender).Text = text.ToString();
ce svaki put da digne event
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
..178.212.adsl.dyn.beotel.net.

ICQ: 20785904


+4 Profil

icon Re: Formatiranje TextBoxa23.11.2008. u 02:03 - pre 187 meseci
@bigguy

kapsovanje mi znaci da od malo slovo pretvorim u veliko : a->A

sto se verzije sa splitom tice:
Code:

string [] nizReci  = textbox1.Text.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
string rezString=String.Empty; //rezultat
foreach (string str in nizReci)
{
   rezString+=char.ToUpper(str[0])+str.Substring(1,str.Length-1))+' ';
}
return rezString.Trim();

ako ces u textboxu pisati rat i mir, za rezString koristi StringBuilder klasu
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
77.46.231.*



+987 Profil

icon Re: Formatiranje TextBoxa23.11.2008. u 06:26 - pre 187 meseci
Citat:



2. ovako odokativno imam utisak da ce uleti u infinite loop




Ne nece. Provereno.
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
*.adsl-a-1.sezampro.yu.



+1 Profil

icon Re: Formatiranje TextBoxa23.11.2008. u 16:53 - pre 187 meseci
Momci ovo super radi :) Hvala.
Ali kako da sada ogranicim da u stringu izmedju dve reci mogu da imam samo jedan space, odnosno, da mogu da pisem "Marko Markovic", a da ne mogu da pisem "Marko Markovic"?
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
80.93.229.*

ICQ: 20785904


+4 Profil

icon Re: Formatiranje TextBoxa24.11.2008. u 09:07 - pre 187 meseci
ako koristis onaj gore algoritam sto sam ti napisao (sa split), on ce odsece sve suvisne spejsove. a ako ne koristis mozes u nekoj petlji da zoves
Code:

while(true)
{
if (str.IndexOf("  ")>-1)//ako imamo 2 spejsa
str= str.Replace(" ","  ");//zameni 2 spejsa sa jednim
else
break;
}
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Formatiranje TextBoxa

[ Pregleda: 2841 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.