:) 我正在製作C#打字程序 並且我希望用戶無法當他鍵入一個錯誤的字母時,輸入任何東西, (我希望打字光標在它的位置凍結) 當他按下退格鍵時,只有這樣他才能恢復打字。如何在C#windows應用程序中鎖定文本框(防止用戶輸入任何內容)(不禁用它或使其不可見)
我已經通過操縱ConsoleScreenCursorCoordinates在C++中完成了這個程序,我試圖在C#中通過操作textBox.Location來做同樣的事情,但它沒有起作用。
在我的計劃中,有2個文本框,在sourceTextBox和TypingTextBox 還有一個名爲「文本」字符串變量,它從一個文本文件 通過一個StreamReader讀取,然後我用這個文本變量的每個元素進行比較從它與用戶輸入的內容。
我厭倦了這一點:
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);
}
}
}
與其他方法一樣,當用戶使用箭頭鍵時,這一切都變得很奇怪。根據史蒂夫的建議,最終制定一個分級控制將是最好的。 – 2012-07-16 17:55:44