当鼠标按下窗体时,是否有一种方法使窗体没有边框(FormBorderStyle设置为“None”),就像有边框一样?
3 回答
狐的传说
TA贡献1804条经验 获得超3个赞
private bool mouseDown;private Point lastLocation; private void Form1_MouseDown(object sender, MouseEventArgs e) { mouseDown = true; lastLocation = e.Location; } private void Form1_MouseMove(object sender, MouseEventArgs e) { if(mouseDown) { this.Location = new Point( (this.Location.X - lastLocation.X) + e.X, (this.Location.Y - lastLocation.Y) + e.Y); this.Update(); } } private void Form1_MouseUp(object sender, MouseEventArgs e) { mouseDown = false; }
心有法竹
TA贡献1866条经验 获得超5个赞
public partial class Form1 : Form{ public Form1() { InitializeComponent(); // set this.FormBorderStyle to None here if needed // if set to none, make sure you have a way to close the form! } protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_NCHITTEST) m.Result = (IntPtr)(HT_CAPTION); } private const int WM_NCHITTEST = 0x84; private const int HT_CLIENT = 0x1; private const int HT_CAPTION = 0x2;}
- 3 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消