2012-04-02 15 views
2

データグリッドビューにデータを入力しています。C#で文字列の最後に押されたキーの位置を検出する方法は?

セルに678.56と入力したとします。ここで再び678の後に数字6を押すと、

文字列の最後に押されたキーの位置を知りたいと思います。 Text.IndexOf(e.KeyChar)は私に位置0を与えています(6もあるので)。

しかし、現在押されているキーの位置を知る必要があります。私はKeyPressイベントを使用しています。

編集:私はdatagridviewのセルから取得した文字列値を使用しています。テキストボックスではありません。私はKeyPressとしてイベントハンドラーを作成しています。

+0

あなたが達成するために何をしたいですか?たぶん、より良い解決策がありますか? – Marc

+0

デバッグしましたか? e.KeyCharプロパティで取得したKeyCharは何ですか? – Zenwalker

+0

@zenwalker e.KeyCharで6のASCIIコードを取得しています。しかしIndexOf(e.KeyChar)は、0の位置に6があるので、0の値を与えています。 – Sukanya

答えて

4

TextBox.SelectionStartより前の文字を見てください。

+0

ありがとうございます。あなたの提案は私の問題を解決するのに役立ちました。 – Sukanya

1

KeyReleaseイベントを使用すると、e.KeyCharが押されたキーの値を返します(このケースでは解放されます)。

+0

私はプログラムの他の検証のためにKeyPressイベントを使用しました。 – Sukanya

3

あなたKeyPressイベントでこれを使用することもできます

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { 
     int position = textBox1.SelectionStart; 
} 
+0

私は2つの答えを受け入れることができませんので、私はあなたの応答をupvoted。 – Sukanya