は、Googleや他の人に感謝し、各制御イベントでそれを行う必要があり、この
class MyForm : Form
{
private bool _processing;
private void OnMousedown(....) // really depends on what you use,
// Click/doubleclick/Up/down - concept is the same
{
if (_processing)
return;
_processing = true;
// do something
. . . . . .
_processing = false;
}
. . . . .
のようなもの、私は(のPeekMessageを使用)..私は、コードを掲載しますが(それが助けになることがありいくつかのいずれか。)
private const uint PM_REMOVE = 0x1;
private const uint WM_MOUSEFIRST = 0x0200;
private const uint WM_MOUSELAST = 0x0209;
private const uint WM_QUIT = 0x0012;
private struct Message
{
long hwnd;
long message;
long wParam;
long lParam;
long time;
Point pt;
}
#if WindowsCE
[DllImport("coredll.dll")]
#else
[DllImport("Kernel32.dll")]
#endif
private extern static bool PeekMessage(out Message Msg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg);
public void ClearMouseClickQueue()
{ Message msg;
while (PeekMessage(out msg, IntPtr.Zero, WM_MOUSEFIRST,WM_MOUSELAST, 1) != false){ }}
それがあったことを...クールな...右
ありがとうございました。私は同じコードを試した。最も奇妙なことは、クリックイベントを破棄することがありますが、予期せぬマウスクリックイベントが発生することがあります。 – Tuvi
@Tuviフォームはコントロールでもあり、ロックを使ってみることもできます。 –
まずはアドバイスをいただき、ありがとうございます。問題は私のウィンドウがコンポーネントの数で構成されていて、いくつかのコントロールは互いに関連しているので、上記のメソッドは少し複雑で扱いが難しいのです。 – Tuvi