c#异形窗体遮罩效果,移动,关闭,最大化,最小化,还原操作
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
public Form1()
{
this.StartPosition = FormStartPosition.CenterScreen;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
TransparencyKey = Color.White;
Image BackgroundImage = Bitmap.FromFile("111.png");
BitmapRegion BitmapRegion = new BitmapRegion();//此为生成不规则窗体和控件的类
// BitmapRegion.CreateControlRegion(this, new Bitmap("feichuan5.jpg"));
BitmapRegion.CreateControlRegion(this, new Bitmap("feichuan5a.png"));
}
private void button_start_Click(object sender, EventArgs e)
{
MessageBox.Show("程序以启动");
}
private void button_close_Click(object sender, EventArgs e)
{
MessageBox.Show("程序已将关闭");
this.Close();
}
private void button_max_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void button_min_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
private void button_to_default_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
yOffset = -e.Y - SystemInformation.CaptionHeight -
SystemInformation.FrameBorderSize.Height;
mouseOffset = new Point(xOffset, yOffset);
isMouseDown = true;
}
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
}
}
工程代码:
待更新。。。