C# 如何实现formborderstyle设置成none后如何移动窗口并可以改变大小
由于要求美观度所以我设置成none自行设置退出缩小等按钮。可是我发现设置成none后无法移动窗体也无法改变窗体大小!!请问如何设置成像传统的Window窗体那样点击窗体边...
由于要求美观度所以我设置成none自行设置退出缩小等按钮。可是我发现设置成none后无法移动窗体也无法改变窗体大小!!请问如何设置成像传统的Window窗体那样点击窗体边缘来改变窗体大小,也可移动窗体。前提必须要在formborderstyle是none下!求指教!
展开
1个回答
展开全部
设置为none后窗体已经没有了标题栏,窗体的移动、最大化、最小化、关闭这些需要自己写代码来完成。
窗体的移动:
bool formMove = false;//窗体是否移动
Point formPoint;//记录窗体的位置
private void Form4_MouseDown(object sender, MouseEventArgs e)//鼠标按下
{
formPoint = new Point();
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
formPoint = new Point(xOffset, yOffset);
formMove = true;//开始移动
}
}
private void Form4_MouseMove(object sender, MouseEventArgs e)//鼠标移动
{
if (formMove == true)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(formPoint.X, formPoint.Y);
Location = mousePos;
}
}
private void Form4_MouseUp(object sender, MouseEventArgs e)//鼠标松开
{
if (e.Button == MouseButtons.Left)//按下的是鼠标左键
{
formMove = false;//停止移动
}
}
窗体的最大化、最小化和关闭:
需要自己拖三个picturebox控件到窗体的右上角,最大化、最小化和关闭的图标就自己去找了。添加picturebox的单击事件。如果要实现一些特效可以加入picturebox的MouseEnter、MouseLeave事件来更换图片。
private void pictureBox1_Click(object sender, EventArgs e)
{
this.WindowState=FormWindowState.Minimized;//最小化
}
private void pictureBox2_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Maximized;//最大化
}
private void pictureBox3_Click(object sender, EventArgs e)
{
this.Close();
}
参考资料:http://hi.baidu.com/yyq745201/blog/item/5dd987ee0e78053cacafd595.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询