Avatar
ostrozan
Redaktor
Avatar
ostrozan:

chtěl jsem na textBoxu filtrovat znaky, aby bral jen číslice
a zkusil jsem to takto:

private void textBox_TextChanged(object sender, TextChangedEventArgs e)
       {
           TextBox tb = sender as TextBox;
           foreach (char c in tb.Text)
           {
               if (!char.IsDigit(c))
               {
                   tb.Text.Remove(tb.Text.Length-1);
               }
           }

       }

mělo by to vymazat poslední zadaný znak, pokud není číslice, ale nevymaže nic

 
Odpovědět 23.6.2014 10:07
Avatar
Odpovídá na ostrozan
Luboš Běhounek (Satik):

Mrkni do manuálu:
http://msdn.microsoft.com/….110%29.aspx

"Returns a new string in which a specified number of characters in the current instance beginning at a specified position have been deleted."

Takže takhle:

tb.Text = tb.Text.Remove(tb.Text.Length-1);
Nahoru Odpovědět 23.6.2014 10:14
:)
Avatar
Lu Kiss
Člen
Avatar
Odpovídá na ostrozan
Lu Kiss:

.

Editováno 23.6.2014 10:16
 
Nahoru Odpovědět 23.6.2014 10:15
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

string je takzvaný immutable typ, tedy remove nezpracovává aktuální string, ale vrací nový - upravený

i tak bys ses potýkal s problémy, měnit zdroj foreach-e je zakázáno

 
Nahoru Odpovědět  +1 23.6.2014 10:15
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na ostrozan
Jan Vargovský:
private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    if (!char.IsDigit(e.Text, 0)) e.Handled = true;
}
 
Nahoru Odpovědět 23.6.2014 12:49
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

Dík - všem

 
Nahoru Odpovědět 23.6.2014 13:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.