Nullreference Q&A 编程技术问答社区
第一次访问本站?请查看 FAQ!
x
+2 投票
31,772 浏览

我想实现无边框拖动窗体,并且更改了BackColor和Transparency实现了透明色,现在仅有一个pictureBox控件,也根据网上的资料实现了一些代码,但是仍然拖动不了。

最新提问 7月 15, 2016 分类:WinForms | 用户: Mustang | 31,772 浏览

1个回答

0 投票

可以参考一下 codeproject 上的这篇文章 Move window/form without Titlebar in 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();

void MainFormMouseDown(object sender, MouseEventArgs e)
{
	if (e.Button == MouseButtons.Left) {
		ReleaseCapture();
		SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
	}
}

如果你的 pictureBox 覆盖了整个窗体,就应该使用 pictureBox 的 MouseDown 事件

void PictureBox1MouseDown(object sender, MouseEventArgs e)
{
	if (e.Button == MouseButtons.Left) {
		ReleaseCapture();
		SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
	}
}
最新回答 7月 15, 2016 用户: staravia (420 分)