0

WinForms RTBのkeyDownイベントを消費するハンドラーがあり、次のコードがあります。

GetTextAtLoc(RTB->SelectionStart); // selects some text at the caret's position
RTB->SelectedText = "SomeOfMyOwn";
GetTextAtLoc(RTB->SelectionStart); // selects the replacement string
RTB->SelectionStart += RTB->SelectionLength - 1;

このコードはその役割を果たしているように見えますが(SelectionStart / Lengthプロパティは正しく更新されています)、カレットは新しい文字列の最後に移動しません-GetTextAtLocの最初の呼び出し時の場所を正しく示しています。テキストボックスを再描画しても効果はないようです。

4

2 に答える 2

0

問題は自然に修正されたようです。残念ながら、何が変化をもたらしたのかわからない。このスレッドを閉じます。

于 2010-04-23T15:15:13.690 に答える
-1

新しい長さを指定しませんでした(したがって、1-1 = 0です)。次のようなものを試してください:

SelectionStart + =(length( "SomeOfMyOwn"))

于 2010-04-20T05:51:54.230 に答える