我有一个PictureBox,从一个边缘到另一个边缘。我将FormBorderStyle设置为None。但是当我运行我的应用程序时,我无法将它移动到任何地方。
是否有任何代码可以帮助我解决这个问题?我尝试过WndProc,但没有为我工作。
答案 0 :(得分:0)
捕获表单的MouseMove,MouseDown和MouseUp事件。在MouseDown事件中,存储相对鼠标位置并设置标志,使用先前存储的位置移动表单并重置标志。
答案 1 :(得分:0)
使用一点点pinvoke更容易做到这一点:
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();
public Form1() {
InitializeComponent();
pictureBox1.MouseDown += pictureBox1_MouseDown;
}
void pictureBox1_MouseDown(object sender, MouseEventArgs e) {
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}