質問編集履歴

1

内容がごちゃごちゃしていたので知りたいことを簡潔になるよう纏めました

2019/01/06 11:54

投稿

mnhktm
mnhktm

スコア25

test CHANGED
@@ -1 +1 @@
1
- WPF TextBox で複数行表示で最下行にカーソルがある場合、任意に複数行スクロールアップさせには
1
+ WPF TextBox でカーソル位置最下行にある事を知方法
test CHANGED
@@ -1,52 +1,14 @@
1
1
  WPFのTextBoxを使ってプログラムを作っています。
2
-
3
- TextBoxには複数行の文で書かれたテキストファイルを読み込んで表示させます。
4
-
5
- 読み込んだテキストはマウスのWheel一行ずつ(対象の一行のみ)順番にTextBox.Select()で
6
-
7
- 強調表示させています。
8
2
 
9
3
 
10
4
 
11
- つまり、一旦表示させテキストの文書でマウスWeel等で先頭よりカーソルの行移動すると
5
+ カーソルがTextBoxの最下行に来場合、カーソル
12
6
 
13
- カーソルのある行のみ反転(強調)表示させていますが、TextBox最下行行くと、当然一行分
7
+ TextBox最下行にある事を知る方法はないしょうか?
14
8
 
15
- スクロールし、最下行に次の行が表示されます。 強調表示の最下行の次の行を見たい場合、
16
-
17
- これを繰り返せばよいのですが、最下行ではその先を見る事が出来ず、マウスでスクロールバー
18
-
19
- を動かし、カーソル行を中央付近に手動で移動させ、また引き続きマウスWeelで強調表示ながら
9
+ カーソル移動はTextView.Select()を使用ています。
20
-
21
- テキスト行を進めています。
22
10
 
23
11
 
24
-
25
- やりたいことは、カーソルがTextBoxの最下行に来た場合、一行スクロールさせるのではなく、
26
-
27
- 任意に複数行(画面中央付近に)スクロールアップさせたいです。(見渡したいため)
28
-
29
- そうするには、現在のカーソル位置がTextBoxのどのへんかを知る必要があります。例えば最下行にある
30
-
31
- とか。
32
-
33
-
34
-
35
- 調べてみると GetLastVisibleLineIndex() がありますが、知りたい事と少し違うようです。
36
-
37
-
38
-
39
- 何か良い方法はないでしょうか?
40
-
41
-
42
-
43
- それと、あわせて WindowフォームのTextBoxにはあった フォーカスが無くなった時に強調表示が
44
-
45
- 消えないようにHideSelection=false が出来ていましたが、同等のプロパティーがWPFのTextBoxには
46
-
47
- 無いようです。
48
-
49
- 別の方法でフォーカスが変わっても反転表示を残す方法はないでしょうか?。
50
12
 
51
13
 
52
14