MaskedTextBox - formát desetinného čísla   otázka

VB.NET, WinForms

Zdravím, používám pro validaci vstupu uživatele MaskedTextBox. Potřebuji aby uživatel mohl zadat do textboxu čísla 0-99 (včetně nepovinných dvou desetinných míst). Data potom vkládám na SQL server jako float.

Masku jsem tedy nastavil takto:

Me.UserMasked.MaskedTextBox1.Mask = "09.99"

Nastavím tedy jako povinné pole pouze první pozici.

(jedná se o komponentu odvozenou od MaksedTextBox, proto UserMasked)

Pokud vstup zadá uživatel je vše v pořádku. Problém však je, že zde zobrazuji i nějáké načtené hodnoty. Pokud budu mít hodnotu například 12.5

zformátuji ji pomocí:

String.Format("{0:f02}", 12.5)

do maskedtextBoxu se vloží bez problémů 12,50. Pokud ale budu mít číslo menší než 10, bude zde chybět počáteční 0 a číslo se mi vůbec do textboxu nedosadí, protože se bude snažit nacpat desetinnou čárku na pozici kde může být pouze číslo.

Např:

String.Format("{0:f02}", 2.5)

Samozřejmě bych si mohl zjistit zda je číslo menší než 10 a něják tam počáteční 0 nacpat. Chtěl jsem se ale spíše zeptat zda ve String.Format na to není nějáká šikovná funkce abych nevymýšlel prasečinky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nešlo by to takto?

ToString("00.00")

tím by se mělo zajistit, že tam budou vždy dvě celá čísla a dvě desetinná.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vymýšlení správné masky pro MaskedTextBox je stejně zbytečně komplikovaná zhovadělost jako Regular Expressions. Proto doporučuji používat NumericUpDown pro zadávání (desetinných) čísel.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback