1)窗口去除边框
在组件属性中FormBorderStyle设为None
2)窗口随着鼠标移动而动
添加引用using System.Runtime.InteropServices;
在初始化控件{InitializeComponent();}代码后添加
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
bool beginMove = false;//初始化鼠标位置
int currentXPosition;
int currentYPosition;
//获取鼠标按下时的位置
private void QRCode_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
beginMove = true;
currentXPosition = MousePosition.X;//鼠标的x坐标为当前窗体左上角x坐标
currentYPosition = MousePosition.Y;//鼠标的y坐标为当前窗体左上角y坐标
}
}
//获取鼠标移动到的位置
private void QRCode_MouseMove(object sender, MouseEventArgs e)
{
if (beginMove)
{
this.Left += MousePosition.X - currentXPosition;//根据鼠标x坐标确定窗体的左边坐标x
this.Top += MousePosition.Y - currentYPosition;//根据鼠标的y坐标窗体的顶部,即Y坐标
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
}
}
//释放鼠标时的位置
private void QRCode_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
currentXPosition = ; //设置初始状态
currentYPosition = ;
beginMove = false;
}
}
3)窗口居中显示
利用C# Form中的StartPosition属性CenterScreen将界面显示在屏幕*
若是用代码实现,显示窗体前,应设置此属性,可在调用Show()或是ShowDialog()方法之前或在窗体构造函数中设置此属性,不要在load()事件中改变此属性,不起作用。
4)界面大小固定
AutoSizeMode有GrowOnly和GrowAndShrink两种属性
GrowOnly:生成的窗体可用鼠标调节
GrowAndShrink:生成的窗体不可用鼠标调节
5)控件设为透明,无边框
将控件的FlatStyle设为flat,为解决内边框出现,将FlatAppearance下的BorderSize设为0.