Этот подход не совсем работает.Если вы используете WinForms, вы можете сделать это с помощью событий.Я быстро использую английские имена переменных, так как я не говорю на вашем языке.
Это может быть один из подходов к этому: я использовал событие "TextChanged" из textBox.
string[] wordsLanguage1;
string[] wordsLanguage2;
int currentIndex = 0;
private void Form1_Load(object sender, EventArgs e)
{
wordsLanguage1 = System.IO.File.ReadAllLines("somePath1");
wordsLanguage2 = System.IO.File.ReadAllLines("somePath2");
}
private void ReportAndCheckInput(string input)
{
if (input.ToLower().Equals(wordsLanguage2[currentIndex].ToLower())) {
//right translation
currentIndex++;
label1.Text = wordsLanguage1[currentIndex];
textBox1.Text = "";
}
else
{
//wrong translation
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
ReportAndCheckInput(textBox1.Text);
}
Теперь этот подход использует событие TextChanged
.Таким образом, метод ReportAndCheckInput
будет вызываться при каждом изменении текста.Это означает, что ваша обратная связь будет появляться при каждом нажатии клавиши, что было бы нехорошо.Вы можете использовать любое другое событие вместо TextChanged
.Например, нажатие кнопки.Другим решением будет использование ярлыка для обратной связи, а не окна сообщения.Тогда пользователю никогда не придется ничего щелкать, кроме как мгновенно увидеть, был ли он прав.