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

Formatiranje MaskedTextBox

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

[ Pregleda: 3022 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
nista
zrenjanin

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



+1 Profil

icon Formatiranje MaskedTextBox14.11.2008. u 11:57 - pre 188 meseci
Imali neko neki primer kako da formatirm MaskedTextBox u obliku 00.00.0000 i koju cu moci posle da menjam prilikom pokretanja aplikacije. Rec je o tome da u ovom slucaju imam aplikaciju na kojoj je jedan segment unosa datum. Medjutim, datum nije uvek poznat, ili je poznata samo godina pa mi je neophodno obezbediti da unos godine bude nezavisan od ostalog dela teksta.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
79.101.171.*



+987 Profil

icon Re: Formatiranje MaskedTextBox14.11.2008. u 16:30 - pre 188 meseci


http://msdn.microsoft.com/en-u....forms.maskedtextbox.mask.aspx


http://msdn.microsoft.com/en-u...ndows.forms.maskedtextbox.aspx
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

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



+1 Profil

icon Re: Formatiranje MaskedTextBox18.11.2008. u 12:12 - pre 187 meseci
Ok. Ovo je super sto sam dobio ali kako da sad oogucimda mi MaskedTextBox ostane prazan i da jednostavno pritiskom na dugme tab predje na naredi TabIndex. Rec je o sledecem, toolTip zbog provere nacina unosa i forme datuma ne dozvoljava da se ostavi prazno polje u okviru MaskedTextBoxa. Kako da prevazidjem ovoj problem? U nastavku dajem kod MaskedTextBoxa:

private void frmUpisPacijenta_Load(object sender, EventArgs e)
{
mtbDatumRodjenja.Mask = "00/00/0000";
mtbDatumRodjenja.MaskInputRejected += new MaskInputRejectedEventHandler(mtbDatumRodjenja_MaskInputRejected);

mtbDatumRodjenja.ValidatingType = typeof(DateTime);
mtbDatumRodjenja.TypeValidationCompleted += new TypeValidationEventHandler(mtbDatumRodjenja_TypeValidationCompleted);
}

private void mtbDatumRodjenja_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
toolTip1.ToolTipTitle = "Pogrešan unos";
toolTip1.Show("Izvinjavamo se, ali samo su brojevi (0-9) prihvatljivi za unos datuma.", mtbDatumRodjenja, mtbDatumRodjenja.Location, 5000);
}

private void mtbDatumRodjenja_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Pogrešan unos datuma";
toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
}
 
Odgovor na temu

Igor Gajic

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



+987 Profil

icon Re: Formatiranje MaskedTextBox18.11.2008. u 12:47 - pre 187 meseci
Ukoliko sam razumeo, hoces da u slucaju da nista nije uneseno za datum da predje na sledece polje.

Pogledaj liniju koju sam dodao.

Code:


        private void mtbDatumRodjenja_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
        {
            if (((MaskedTextBox)sender).Text == "  .  .") return; // <---------  !!!!!
            if (!e.IsValidInput)
            {
                toolTip1.ToolTipTitle = "Pogrešan unos datuma";
                toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
                e.Cancel = true;
            }
        }

 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

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



+1 Profil

icon Re: Formatiranje MaskedTextBox19.11.2008. u 08:32 - pre 187 meseci
Ok to je to ali da li ti nekako pada vec na pamet kako da godinu rodjenja ograncim na unos od 1890. pa navise, ali pritom da datum rodjenja ne sme da bude veci od tekuceg datuma. Nesto sam probao na nacin koji sam izlozio dole ali ne znam kako tacno da konvertujem tekst u MaskedTextBox-u u validan datum za poredjenje (mozda to i ne moze, ali to mi je palo odmah na pamet). Moze jos ova pomoc i obecavam necu vise komplikovati

private void mtbDatumRodjenja_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
DateTime donjaGranica = new DateTime(1890, 12, 12);
DateTime gornjaGranica = DateTime.Now.Date;

if (((MaskedTextBox)sender).Text == " . .") return;
if(!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Pogrešan unos datuma";
toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
if ((DateTime.Parse(mtbDatumRodjenja.Text) < donjaGranica) && (DateTime.Parse(mtbDatumRodjenja.Text) > gornjaGranica))
{
toolTip1.ToolTipTitle = "Pogrešan unos godine rođenja";
toolTip1.Show("Izvinjavamo se, ali godina rođenja koju ste uneli nije validna. molim Vas, proverite godinu koju ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
}
 
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 MaskedTextBox20.11.2008. u 01:28 - pre 187 meseci
1. taj zadnji if sto si dodao treba da se izvrsava unutar else dela prethodnog if-a.
ovako i ako nije validan input, pokusavas da ga konvertujes i poredis.

2. DateTime.parse ti je culture sensitive, pa je zgodno da zoves overload varijantu: DateTime.Parse(string, IProviderNesto), a unutar ovog iprovidera podesis da ti je format datuma dd/mm/yyyy...
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

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



+1 Profil

icon Re: Formatiranje MaskedTextBox20.11.2008. u 12:30 - pre 187 meseci
Sallle poslusao sam i sada mikod izgleda kao sto je dole napisano ali sada mi stalno prijavljuje sledecu gresku kada unesem datum koji ne odgovara da je manji od 12.12.1890. i veci od tekuceg datuma, odnosno kada unesem pravilnu vrednost, on izbacuje:

"The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar."

Imali nade da se iscupam iz ovog problema?

KOD:

private void mtbDatumRodjenja_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
string format = "d";
CultureInfo provider = CultureInfo.InvariantCulture;

DateTime donjaGranica=new DateTime(1890,12,12);
DateTime gornjaGranica=DateTime.Now.Date;


if (((MaskedTextBox)sender).Text == " / /") return;
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Pogrešan unos datuma";
toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
else
{
if (DateTime.Compare((DateTime.ParseExact(mtbDatumRodjenja.Text, format, provider)), donjaGranica) < 0)
{
toolTip1.ToolTipTitle = "Pogrešan unos datuma";
toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Datum mora biti u intervalu od 12.12.1890. do tekuceg datuma. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
if (DateTime.Compare((DateTime.ParseExact(mtbDatumRodjenja.Text, format, provider)), gornjaGranica) > 0)
{
toolTip1.ToolTipTitle = "Pogrešan unos datuma";
toolTip1.Show("Izvinjavamo se, ali datum koji ste uneli nije validan. Datum mora biti u intervalu od 12.12.1890. do tekuceg datuma. Molim Vas, proverite datum koji ste uneli.", mtbDatumRodjenja, 5000);
e.Cancel = true;
}
}
}
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.179.*



+1 Profil

icon Re: Formatiranje MaskedTextBox20.11.2008. u 18:29 - pre 187 meseci
Problem je resen Greska je bila u formatu datuma, a ja sam je uporno trazio na drugom mestu. Hvala svima
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.180.*



+1 Profil

icon Re: Formatiranje MaskedTextBox10.12.2008. u 17:20 - pre 187 meseci
Momci imam novi problem iz ove oblasti. Rec je o formatiranju MaskedTextBox-a za slucaj maila i telefona. Naime, kod maila broj karaktera ispred znaka "@" je promenjiv, a to mi komplikuje stvar. Taman sam mislio da sam skontao MaskedTextBox kad ono nov problem. Isto je rec i sa brojem telefona. I kod njega broj karaktera varira. Za sada sam privremeno sve ovo resio sa koriscenjem TextBox-a u kojem po pokretanju insertujem znak "@" kod maila ili znak "( )" kod telefona, ali moram dodati da nisam bas zadovoljan ovim resenjem jer korisnik moze te znake greskom izbrisati pa samim tim napraviti problem. Imali neko neki predlog?
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
91.148.86.*

ICQ: 20785904


+4 Profil

icon Re: Formatiranje MaskedTextBox11.12.2008. u 01:28 - pre 187 meseci
pogledaj namespace: System.Text.RegularExpressions, klasa: Regex
smisli svoj neki regularni izraz za e-mail, ili nadji neki preko googla.
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

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



+1 Profil

icon Re: Formatiranje MaskedTextBox11.12.2008. u 12:28 - pre 187 meseci
Hvala sallle to je to. Hvala
 
Odgovor na temu

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

[ Pregleda: 3022 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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