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.
|