フォームをドラッグして、ドラッグされたときに透明にする次のコードがあります。問題は、ちらつき、スムーズにドラッグできないことです。フォームに写真がありますが、それが原因かどうかはわかりません。ちらつきないようにするにはどうすればよいでしょうか。不透明度を削除すると、ドラッグが速く/スムーズになります。
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam,
int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
public void Drag(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Opacity = 0.9;
ReleaseCapture();
SendMessage(Handle, 0xA1, 0x2, 0);
this.Opacity = 1;
}
}
private void Body_MouseDown(object sender, MouseEventArgs e)
{
Drag(e);
}