外部のダイアログボックスをクリッピングしないで、マウスポイントでダイアログを表示するにはどうすればよいですか?フォーム外でクリッピングを行わないダイアログを表示
たとえば、画面の右端付近にあるコントロールを右クリックすると、ダイアログが左側に表示され、コントロールが画面の下にある場合は、ダイアログの上にカーソルが表示されます。
これは私のコードです:
If e.Button = MouseButtons.Right Then
Dim tool = New Form2 With {
.Location = New Point(Cursor.Position.X, Cursor.Position.Y),
.WhoSend = sender 'some property
}
tool.ShowDialog()
End If
これは常にダイアログがウィンドウの外にクリッピングされている場合でも、カーソルの右下にダイアログが表示されます。
ここで写真が役立ちます。 Expected vs actual –
これは、ContextMenu/Stripが行うものです。必要に応じてメニューが画面上に完全に保持されるように移動するようにするコードがあります。また、右クリックで使用するクラスの種類。フォームにそのコードがない場合は、自分で追加する必要があります。フォームの再スケール時に正しく動作するようにLoadイベントをサブスクライブしてください。 Screenクラスはあなたに境界を与えます。 –
@HansPassant私は 'ContextMenuStrip'を試しました。 'ContextMenuStrip'内の項目をクリックした後でコントロールをどのように得ることができるのですか – conquistador