3

一部のテキストが選択されているときに、選択を変更せずに、1行のテキストボックスを左に「スクロール」しようとしています。

ここに画像の説明を入力

上の図では、M から Z までの文字を選択したテキスト ボックス A がありますが、テキスト ボックスの先頭に文字が表示されません。

テキストボックス B は、選択範囲を Z から M に逆方向にドラッグして手動で行ったものです。これにより、表示領域がスクロールされ、左側の文字が表示されます。

以下のコードを使用すると、最初までスクロールできますが、選択範囲が失われます。

  txtTest.SelectionStart = 0;
  txtTest.SelectionLength = 0;
  txtTest.ScrollToCaret();

テキストボックスに最初の文字を表示しながら、プログラムで M から Z を選択するにはどうすればよいですか?
(上の写真Bのように)

4

1 に答える 1

0

テストされていませんが、投稿でそのコードを呼び出すと、キャレットが現在どこにあるかを記録できます。次に、その選択を再度有効にします。

int originalSelectionStart = txtTest.SelectionStart;
int originalSelectionLength = txtTest.SelectionLength;
txtTest.SelectionStart = 0;
txtTest.SelectionLength = 0;
txtTest.ScrollToCaret();
txtTest.SelectionStart = originalSelectionStart;
txtTest.SelectionLength = originalSelectionLength;
于 2012-10-16T23:18:45.577 に答える