投稿者 hk  (学生) 投稿日時 2025/5/21 15:46:57
vb.net2019 FrameWorks3.5
メインフォームからサブフォームを開く際、
サブフォーム側のLoadイベントで以下の関数を走らせて、指定したコントロール上にマウスカーソルが移動するようにしました。
Public Shared Sub MouseCursorMoveToControl(ctrl As Control)
            Dim iWidth = ctrl.Width \ 2
            Dim iHeight = ctrl.Height \ 2
            Dim point = ctrl.PointToScreen(New Point(iWidth, iHeight))
            Cursor.Position = point
 End Sub
1度目は想定通りの挙動をするのですが、2度目以降マウスカーソルが移動しなくなります。

メインフォームからサブフォーム開く際は、UsingからのShowDIalogで開いています。
この時、FormStartPositionをManualにしていることが関係していることはわかったのですが、
どうしてもForm位置を指定したいです。
何かいい方法はないでしょうか?
また、何故2度目以降から移動しなくなるのか解説できる方がいたら教えて欲しいです。