0

次のコードを使用して、次のコードを使用して最後の文字(入力したばかりの文字)を抽出しています

 private string GetTypedChar()
    {
        string currentChar = "";
        int i = rtfText.SelectionStart; 
        if (i > 0)
        {
            currentChar = rtfText.Text.Substring(i-1, 1);
            MessageBox.Show(i+":"+currentChar);
        }
        return currentChar;
    }

しかし、これは私に間違った結果をもたらしています。入力した単語が「RS」の場合、R を押した後にメッセージ ボックスに 1: (空白) が表示され、次に S を入力するとメッセージ ボックスに 2:R が表示されます。

4

3 に答える 3

1

GetTypedChar()完全に削除して、KeyPressイベントにサブスクライブすることができます。

ただし、その情報が必要な場合は、これはキャラクターの位置を提供しないことに注意してください。

private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show(string.Format("Last char typed: {0}", e.KeyChar));
}
于 2013-08-08T14:57:08.603 に答える