|
■No60076 (BNT さん) に返信
> フォームのSizeChangedイベントで処理を行っているのですが、
何の処理を行っているのでしょう? それが分かれば、何か代案を提示できるかもしれません。
たとえば、その処理をワーカースレッドで作業させるとか、あるいは
サイズ変更以外のイベント(Timer.Tick 等で実施するとか)。
> そこで質問なのですが、ユーザーがフォームの端をマウスでつまんでフォームのサイズを変更し、マウスボタンを
> 離したタイミングで、上記フォームのSizeChangedイベントの処理を行えればいいと思うのですが、
> どのイベントを利用すればよいでしょうか?
話を聞く限りでは ResizeEnd イベントが該当しそうに思えますが、それだと何か都合が悪いのでしょうか?
もし、ResizeBegin / Resize / ResizeEnd ではなく、SizeChanged でなければならない理由があるのなら、
SizeChanged を Application.Idle イベントと併用すれば、もしかしたらそれっぽくなるかもしれません。
Public Class Form1
Private Resizing As Boolean
Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
If Not Resizing Then
Resizing = True
AddHandler Application.Idle, AddressOf Test
ListBox1.Items.Insert(0, "サイズ変更開始" & Now.ToString("HH:mm:ss.ffff"))
End If
End Sub
Private Sub Test(ByVal sender As Object, ByVal e As EventArgs)
RemoveHandler Application.Idle, AddressOf Test
Resizing = False
ListBox1.Items.Insert(0, "サイズ変更終わり" & Now.ToString("HH:mm:ss.ffff"))
End Sub
End Class
|