У меня есть форма для окон без рамки. Итак, я добавил окно с изображением, и я хочу, чтобы вся форма была перемещена, когда щелкнул этот ящик.Перемещение окон из окна изображения в C#
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void header_image_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
Это код, который я использую atm.But моя проблема в том, что если я переместить курсор очень быстро он не торчал на поле изображения.
Я попытался найти решение, но ничего не получилось. я использовал некоторую информацию из этих 2-х звеньев:
Любые идеи?
EDIT: Вот весь код моей формы
public Form1()
{
InitializeComponent();
}
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void header_image_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
Я не могу воспроизвести. Какова функция Picturebox? Имеете ли вы тот же код для Form1_MouseDown? Любые другие события мыши закодированы? – TaW
fucntion - MouseDown. и только для picturebox. И нет никаких других событий мыши закодированы. Я просто хочу переместить всю форму только из header_image. – Silver