メイン フォームは Form1 で、オンデマンドでダイアログとして表示されるセカンダリ フォームは Form2 です。Form2 を呼び出すと、常に画面の左上隅に表示されます。最初は自分のフォームがまったくないと思っていましたが、画面上部の隅にぶら下がっているのが見えました。ユーザーがコンテキストメニューをクリックしてモーダルダイアログを表示する現在のマウス位置にフォームを表示したいと思います。私はすでにさまざまなことを試し、コードサンプルを検索しました。しかし、私がすでに知っているさまざまな方法で実際のマウス位置を取得する方法について、何千もの異なるコード以外に何も見つかりませんでした。ただし、この位置は常に、画面、メイン フォーム、コントロール、または現在のコンテキストが何であれ相対的です。ここで私のコード(私も試したデスクトップの配置は機能せず、フォームのみを画面の中央に配置します。
Form2 frm2 = new Form2();
frm2.textBox1.Text = listView1.ToString();
frm2.textBox1.Tag = RenameFile;
DialogResult dlgres=frm2.ShowDialog(this);
frm2.SetDesktopLocation(Cursor.Position.X, Cursor.Position.Y);