回答編集履歴

2

追記

2020/11/19 04:24

投稿

YAmaGNZ
YAmaGNZ

スコア10266

test CHANGED
@@ -25,3 +25,81 @@
25
25
 
26
26
 
27
27
  もし、上図のようにLabelの背景をFormの背景と同じではなく別の色とするのであれば、透過するフォームのほうにその背景の領域だけその色でなんらかの形で描画する形になります。
28
+
29
+
30
+
31
+ ### 追記
32
+
33
+
34
+
35
+ タイマーの処理ですが
36
+
37
+ ```VBNET
38
+
39
+ Private t As Timers.Timer
40
+
41
+
42
+
43
+ Private Sub TimerStart()
44
+
45
+ t = New Timers.Timer(15)
46
+
47
+ AddHandler t.Elapsed, AddressOf Timer_Elapsed
48
+
49
+
50
+
51
+ t.Start()
52
+
53
+ End Sub
54
+
55
+
56
+
57
+ Private Sub Timer_Elapsed(sender As Object, e As EventArgs)
58
+
59
+ Static prevtime As DateTime = Now
60
+
61
+ Console.WriteLine($"{(Now - prevtime).TotalMilliseconds}ms")
62
+
63
+ prevtime = Now
64
+
65
+ End Sub
66
+
67
+
68
+
69
+ ```
70
+
71
+ このような処理を実行してみれば分かるのですが、まれに間隔が30ms等長い時があります。
72
+
73
+ こういった時にかくつくように感じるのではないでしょうか。
74
+
75
+
76
+
77
+ ```VBNET
78
+
79
+ Private Sub TaskStart()
80
+
81
+ Static prevtime As DateTime = Now
82
+
83
+ Task.Run(Sub()
84
+
85
+ While True
86
+
87
+ Console.WriteLine($"{(Now - prevtime).TotalMilliseconds}ms")
88
+
89
+ prevtime = Now
90
+
91
+
92
+
93
+ Threading.Thread.Sleep(15)
94
+
95
+ End While
96
+
97
+ End Sub)
98
+
99
+ End Sub
100
+
101
+ ```
102
+
103
+ このように別スレッドで動作させた場合は、実行間隔にそれほどのばらつきは出ないと思います。
104
+
105
+ 実際にどのような処理で文字を移動させているのかは分かりませんが、もしタイマーの実行間隔のばらつきによるかくつきなのであれば効果はあるのではないでしょうか。

1

追記

2020/11/19 04:23

投稿

YAmaGNZ
YAmaGNZ

スコア10266

test CHANGED
@@ -1 +1,27 @@
1
1
  全体を半透明化したいだけなのであれば、UpdateLayerdWindowではなく[Form.Opacityプロパティ](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.opacity?view=netframework-4.8)を設定してはどうですか?
2
+
3
+
4
+
5
+ とりあえずUpdateLayerdWindowを使用しない方法ですが
6
+
7
+ フォームを2つ用意します。
8
+
9
+ Form1は半透明にするフォーム、こちらには半透明として表示するものを配置します。
10
+
11
+ そしてOpacityプロパティを設定して半透明にします。
12
+
13
+
14
+
15
+ Form2は背景を単色(例えばColor.Black)とし、TransparencyKeyプロパティを利用してその単色を透明にするようにし。Form1をownerとしてForm1と同じ位置に表示します。
16
+
17
+
18
+
19
+ そうすれば
20
+
21
+ ![サンプル](1390502718a1755723c24c7fceb9eb0c.png)
22
+
23
+ このような形で表示できます。
24
+
25
+
26
+
27
+ もし、上図のようにLabelの背景をFormの背景と同じではなく別の色とするのであれば、透過するフォームのほうにその背景の領域だけその色でなんらかの形で描画する形になります。