AlexNineteen
@AlexNineteen
Привет.

Как сравнить введённый символ с символом из текста или Клавиатурный тренажёр на C#?

Подскажите алгоритм работы вот этого сайта.
Я хочу написать такой же тренажёр на C#, но что-то не могу понять принцип работы.
Допустим есть текст, мы его разбиваем на массив символов. И что теперь мне с этим массивом делать?
Можно сравнить с нажатой клавишей, но как? Пробовал вот так:
char[] znak;
public MainWindow()
{
    InitializeComponent();
    znak = textBlock1.Text.ToCharArray();
}
int rate = 0;
private void textBox1_PreviewTextInput(object sender, TextCompositionEventArgs e)
{   
    if (e.Text == Convert.ToString(znak[rate])) 
    {
         textBox1.Text += e.Text;
         rate++;                
    }
    else
    {
         e.Handled = true;
    }
}


Но он почему-то вместо "на" он выдаёт "анна", при чём курсор после первой буквы.
  • Вопрос задан
  • 1031 просмотр
Решения вопроса 1
@Vug
Новичок в .NET
textBox1.Text += e.Text;
Эта строка здесь лишняя (ты добавляешь лишний раз букву, которую нажали)
Также не стоит забывать на счет пробела, у него нет "текста", поэтому для него придется также отдельно дописать условие
private void textBox1_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Space && char.IsWhiteSpace(znak[rate]))
            {
                rate++;
            }
            else if (e.Key != Key.Space)
            {
                
            }
            else
            {
                e.Handled = true;
            }
        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы