2014-08-09 2 views
-1

Я хочу удалить последний символ, который кто-то вводит в текстовое поле. Например, если кто-то печатает в пустое текстовое поле «abcd», я хочу удалить букву «d», или если в текстовом поле, содержащем «abcd», пользователь вводит 1, как здесь: «ab1cd», я хочу удалить это 1Как удалить последний символ, введенный в текстовое поле

+2

показать код, что вы пробовали? –

+0

В какой момент вы хотите его удалить? Когда нажимается кнопка или пока они печатаются (и для нее установлен параметр)? – keyboardP

ответ

2

Слушайте события TextChanged в текстовом поле и сохраните изменения, что произошло:

public partial class MainWindow : Window 
{ 
    private ICollection<TextChange> _latestChange = null; 

    public MainWindow() 
    { 
     InitializeComponent(); 

     myTextBox.TextChanged += (o, a) => 
     { 
      _latestChange = a.Changes; 
     }; 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     if (_latestChange != null) 
     { 
      var change = _latestChange.FirstOrDefault(); // Just take first change 
      if (change.AddedLength > 0) // If text was removed, ignore 
      { 
       myTextBox.Text = myTextBox.Text.Remove(change.Offset, change.AddedLength); 
      } 
     } 
    } 
} 
0
private void button1_Click(object sender, EventArgs e) 
{ 
    string newstring = textBox1.Text; 
    for(int i = 0; i<=9; i++) 
    { 
     if(newstring.Contains(i.ToString())) 
     { 
      int start = newstring.IndexOf(i.ToString()); 
      newstring = newstring.Remove(start, 1); 
     } 
    } 
    textBox1.Text = newstring.Remove(newstring.Length - 1); 
} 

Это удалит последнюю букву и любые номера в строке. Надеюсь, поможет.

+2

Я думаю, что OP означает последнего персонажа, которого кто-то набрал (он не обязательно будет числом, и он не всегда будет в последней позиции строки) – keyboardP

+0

ах я вижу, хорошо, я что-то придумаю –

Смежные вопросы