8

TextBoxで書かれた最新のチャートを取得する方法を知りたい。それは文字列の最後を意味するものではありません。 たとえば、私はこれを書いています:テキストボックスに書かれた最新のチャートを取得するには?

これは私のテストです。

しかし、私は「S」忘れてしまったので、私は「私は」と私は「s」を追加する私の指を動かす:

これはテストです。

どうすれば 's'を得ることができますか?

私はそれが明らかであると思います

...私は、charまたは文字列でそれを取得したいが、私は何をするのか分かりません。

+0

文字を入力するたびに、文字列を文字配列に変換し、古い文字列を文字配列に保持し、文字が一致しない最初のインデックスを探します。たとえば、指定した文字列では、インデックス6の古い文字列は ''になり、インデックス6の新しい文字列は 's'になります。これは挿入された文字であることがわかります。 – Jonathan

+0

_Hmm_、これはプログラミング問題ではなく人工知能です。 –

+0

Windowsの電話機7または8が引き続きコピー貼り付けをサポートしている場合(6件)、アプリケーションで表示するキー、最後に入力した文字、または貼り付けられたデータはどうですか? –

答えて

8

あなたが最後に書き込まれた文字を取得したい場合は、KeyDownイベントにTextBoxを購読:

C#:

textBox.KeyDown += textBox_KeyDown; 

XAML:

<TextBox x:Name="textBox" KeyDown="textBox_KeyDown" /> 

その後:

private void textBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    /* e.Key contains the keyboard key associated with the event. */ 
} 

最後に書き込まれた文字のインデックスを取得する場合、これはより複雑です。その解決策の1つは、TextBoxのマウスの位置とカーソルを追跡することです。

+1

'new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress)'と 'this.textBox1_KeyPress'を追加することの違いは何ですか? –

+0

C#では違いはありません。私は完全修飾名を使用しているデザイナーのコードを書いた。 –

+0

ありがとう!実際、インデックスも必要です。 WPのカーソル位置をどのように追跡できますか? – TDK

4

はyBeeの答えは例外で、そのイベントは、テキストボックスに挿入された最後の文字を取得するには、このコードを使用して、少なくともWindowsの携帯電話8

+1

これらはどちらも有効なイベントです。 'KeyPress'は非文字キーのために生成されないので、これに対してよりうまく動作します。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx –

+2

Windowsフォームではなく、Windows電話で質問されました。 KeypressはWindows Phoneの場合は表示されません。利用可能なイベントはKeyDownです。 – Manish

+0

@Manishそれはちょうど私のポイントだった、ありがとう。 – Haspemulator

0

に、ないKeyPressKeyDownと呼ばれ、ほとんど正しい

private void Textbox1_KeyDown(object sender, KeyEventArgs e) 
      { 
       lastchar_inserted = e.KeyValue.ToString(); // global string variable 
      } 
0

見てください、それは助けるかもしれません。 は、テキストの最後の文字を取得するには、別の提案は

"\n"nameTextbox.Append("\n")

が付加され、その後、メソッドを使用し、最終的には

int lineCount = nameTextbox.Lines.Count();

を使用して

nameTextbox.GetFirstCharIndexFromLine(lineCount)

ここでは、最後の文字のインデックスとして(index-1)(または何でも、細かいテキストで注意してテストすることができます)。

関連する問題