右击弹出最大化\关闭菜单:
#region 右击弹出菜单
const int WS_CLIPCHILDREN = 0x2000000;
const int WS_MINIMIZEBOX = 0x20000;
const int WS_MAXIMIZEBOX = 0x10000;
const int WS_SYSMENU = 0x80000;
const int CS_DBLCLKS = 0x8;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style = WS_CLIPCHILDREN | WS_MINIMIZEBOX | WS_SYSMENU;
cp.ClassStyle = CS_DBLCLKS;
return cp;
}
}
#endregion
拖动\最小化\关闭功能
//定义一个布尔变量,作为事件的开关。
bool b = false;
//定义一个‘点’的变量,接收鼠标的点位置。
Point mousePonit;
private void panel4_MouseMove(object sender, MouseEventArgs e)
{
//如果获取b为真的时候,开始执行下面的语句。
if (b)
{
//定义一个‘点’变量,为组件的鼠标光标位置
Point p = Control.MousePosition;
//平移mousePonit为p变量。
p.Offset(mousePonit);
//控件的位置,为p位置。
this.Location = p;
}
}
private void panel4_MouseDown(object sender, MouseEventArgs e)
{
//考虑是否鼠标左键按下,如果按下则开始做以下的事情。
if (e.Button == MouseButtons.Left)
{
//给mousePonit定义为当前的鼠标位置坐标。
mousePonit = new Point(-e.X, -e.Y);
//设置变量b为布尔真值。
b = true;
}
}
private void panel4_MouseUp(object sender, MouseEventArgs e)
{
b = false;
}
//关闭
private void pictureBox1_Click(object sender, EventArgs e)
{
GC.Collect();
this.Close();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;//最小化
}