回答編集履歴

1

見直しキャンペーン中

2023/07/23 06:19

投稿

TN8001
TN8001

スコア9862

test CHANGED
@@ -1,47 +1,24 @@
1
1
  > 変更前のhighlight colorを保存し,Color型にするかが分からない。
2
2
 
3
-
4
-
5
- ```C#
3
+ ```cs
6
-
7
4
  private readonly Color oldColor = Color.FromArgb(SystemColors.Highlight.ToArgb());
8
-
9
5
  // これではダメ(その時のSystemColorになってしまって役に立たない)
10
-
11
6
  //private readonly Color oldColor = SystemColors.Highlight;
12
-
13
7
  ```
14
-
15
8
  と保存しておいて`ChangeSelectColour(oldColor);`でいけました。
16
-
17
-
18
9
 
19
10
  > 1から4まで範囲選択しようとすると,全文字範囲選択されhighlight colorになってしまう
20
11
 
21
-
22
-
23
12
  `HorizontalAlignment.Center`になっているから目立つというか気になりますが、`ShowSelectionMargin=true`したときに出る、行選択エリア?の動きですよね?(falseにしてもギリギリをクリックで行選択できちゃう)
24
13
 
25
-
26
-
27
14
  ネイティブのコントロールをざっと見ましたが、切るようなオプションは見つけられませんでした。
28
-
29
15
  [Rich Edit - Win32 apps | Microsoft Docs](https://docs.microsoft.com/ja-jp/windows/win32/controls/rich-edit-controls)
30
-
31
-
32
16
 
33
17
  > 最後に半角1文字分(改行文字?)もhighlight colorになってしまう。
34
18
 
35
-
36
-
37
19
  これも恐らくそういう仕様のようです。
38
-
39
20
  [C# - richTextBoxで、1行テキスト選択時、改行コードも一緒に選択されてしまう|teratail](https://teratail.com/questions/248946)
40
-
41
-
42
21
 
43
22
  ---
44
23
 
45
-
46
-
47
24
  どちらもサブクラス化して泥臭いことをすればなんとかなるかもしれませんが、労力に合わないと思います(私はこれ以上調査するつもりはありません^^;