■82429 / inTopicNo.1) |
フォーム外のクリックでフォームを閉じたい |
□投稿者/ 夜叉丸 (31回)-(2017/01/10(Tue) 15:38:18)
|
分類:[.NET 全般]
「フォーム2の外を左クリックされたらフォーム2をクローズしたい。」のですが、 http://himag.blog26.fc2.com/blog-entry-43.html 上記URLを参考に以下のように作成して実行するとフリーズしました。 なにが間違っているのでしょうか? (目的が達成できれば以下のコードでなくてもいいのですが)
≡Form1≡ private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(); frm.Show(); }
≡Form2≡ public class CaptureRegion { internal class NativeMethods { [DllImport("user32.dll")] extern public static void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); [DllImport("user32.dll")] extern public static int GetMessageExtraInfo();
public const int MOUSEEVENTF_RIGHTDOWN = 0x0008; public const int MOUSEEVENTF_RIGHTUP = 0x0010; }
public static void SetMouseRButtonDown() { NativeMethods.mouse_event( NativeMethods.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, NativeMethods.GetMessageExtraInfo()); }
public static void SetMouseRButtonUp() { NativeMethods.mouse_event( NativeMethods.MOUSEEVENTF_RIGHTUP, 0, 0, 0, NativeMethods.GetMessageExtraInfo()); } }
private void button1_Click(object sender, EventArgs e) { this.Capture = true; Cursor.Current = Cursors.Cross; CaptureRegion.SetMouseRButtonDown(); }
private void Form2_MouseDown(object sender, MouseEventArgs e) { MessageBox.Show("MouseDown"); this.Capture = false; CaptureRegion.SetMouseRButtonDown(); }
|
|