C# 无边框模式拖动 最大化 最小化 关闭 最大化不遮挡任务栏
一、无边框模式拖动
private Point mPoint;
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
mPoint = new Point(e.X, e.Y);
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
}
}
在需要进行鼠标按下拖动的控件或窗体上增加对应的MouseDown.MouseMove事件处理即可
本代码示例以panel1为无边框窗体顶部标题栏,因此对应事件均为panel1的事件
二、无边框模式最大化 最小化 关闭处理
//处理关闭按钮事件
private void btn_close_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
//处理最小化按钮事件
private void btn_min_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
//处理最大化按钮事件
//同步变更最大化按钮图片
private void btn_max_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Maximized;
btn_max.Image = global::GoBang.Properties.Resources.normal;
}
else if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
btn_max.Image = global::GoBang.Properties.Resources.max;
}
}
三、无边框模式最大化不遮挡任务栏
this.MaximizedBounds = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
在对应窗体的构造函数中,初始化控件之后增加此行代码,来避免无边框模式下最大化窗口遮挡任务栏
------------------------------------------------------------------------------------------------------------------------------
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Darkic
转载请注明原文链接:https://www.cnblogs.com/darkic/p/16127575.html
来源:博客园cnblogs
© 版权声明:本文为博主原创文章,转载请附上博文链接!