:)私はC#タイピングプログラムを作成しています.ユーザーが間違った文字を入力したときに何も入力できないようにしたい(タイピングカーソルをその位置でフリーズさせたい)、バックスペースを押したときにのみ彼のタイピングを再開します。
ConsoleScreenCursorCoordinates を操作して C++ でこのプログラムを作成しました。textBox.Location を操作して C# で同じことを試みましたが、うまくいきませんでした。
私のプログラムには、2 つの textBoxes、sourceTextBox および TypingTextBox があり、StreamReader を介して textFile から読み取る「text」と呼ばれる文字列変数もあり、このテキスト変数を使用して、そこからの各要素をユーザーの要素と比較します。打ち込んでいる。
私はこれに疲れました:
bool madeMistake = false;
Point CurrentTypingPosition;
string whatIsWrittenBeforeTheMistake = "";
private void TypingTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if (!madeMistake)
{
if (e.KeyChar == text[typingIndex])
{
typingIndex++;
}
else if (e.KeyChar == backspace)
{
typingIndex--;
}
else
{
CurrentTypingPosition = TypingTextBox.Location;
madeMistake = true;
TypingTextBox.Text += " ";
TypingTextBox.Location = CurrentTypingPosition;
whatIsWrittenBeforeTheMistake = TypingTextBox.Text;
}
}
else
{
if (e.KeyChar == backspace)
madeMistake = false;
else
{
TypingTextBox.Text = whatIsWrittenBeforeTheMistake;
TypingTextBox.Location = CurrentTypingPosition;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}