c#实现无标题栏窗口的拖动
程序员文章站
2023-12-19 14:39:40
当把窗体的formborderstyle属性设为none后会导致边框没了,结果窗体无法用鼠标拖动、最大、最下化和关闭……下面解决窗体可拖动问题:1.首先导入命名空间:复制代...
当把窗体的formborderstyle属性设为none后会导致边框没了,结果窗体无法用鼠标拖动、最大、最下化和关闭……
下面解决窗体可拖动问题:
1.首先导入命名空间:
using system.runtime.interopservices;
2.然后如下代码:
[dllimport("user32.dll")]
public static extern intptr sendmessage(intptr hwnd,int msg,int wparam,int lparam);
protected override void onmousedown(mouseeventargs e)
{
base.onmousedown(e);
if (e.button == mousebuttons.left)//按下的是鼠标左键
{
capture = false;//释放鼠标使能够手动操作
sendmessage(handle, 0x00a1, 2, 0);//拖动窗体
}
}
关于最小化、最大化和关闭按钮,则可以利用按钮控件,再把按钮控件的背景图片设为相应的图片,再在各自的单击事件中指明所需操作即可,这样不仅可以实现最大、最小、关闭的功能,还可以将这些按钮美化。
下面解决窗体可拖动问题:
1.首先导入命名空间:
复制代码 代码如下:
using system.runtime.interopservices;
2.然后如下代码:
复制代码 代码如下:
[dllimport("user32.dll")]
public static extern intptr sendmessage(intptr hwnd,int msg,int wparam,int lparam);
protected override void onmousedown(mouseeventargs e)
{
base.onmousedown(e);
if (e.button == mousebuttons.left)//按下的是鼠标左键
{
capture = false;//释放鼠标使能够手动操作
sendmessage(handle, 0x00a1, 2, 0);//拖动窗体
}
}
关于最小化、最大化和关闭按钮,则可以利用按钮控件,再把按钮控件的背景图片设为相应的图片,再在各自的单击事件中指明所需操作即可,这样不仅可以实现最大、最小、关闭的功能,还可以将这些按钮美化。