当前位置: 首页> 房产> 家装 > 服务器维护工程师_个人信息网站html_灯塔网站seo_广告公司网站制作

服务器维护工程师_个人信息网站html_灯塔网站seo_广告公司网站制作

时间:2025/7/19 22:52:03来源:https://blog.csdn.net/weixin_42168040/article/details/145987793 浏览次数:0次
服务器维护工程师_个人信息网站html_灯塔网站seo_广告公司网站制作

C# 使用GDI+实现窗体渐变和关闭淡出效果

1、窗体渐变色
GDI+ :(Graphics Device Interface)

#region 窗体渐变效果  重写OnPaint
protected override void OnPaint(PaintEventArgs e)
{base.OnPaint(e);//获取画布Graphics graphics = e.Graphics;//获取矩形(目标窗体)Rectangle  rec = new Rectangle(0,0,this.Width,this.Height);//画刷 :指定渐变色和渐变方向LinearGradientBrush linearGradientBrush = new LinearGradientBrush(rec, Color.FromArgb(255, 101, 127), Color.FromArgb(93, 127, 124), LinearGradientMode.BackwardDiagonal);graphics.FillRectangle(linearGradientBrush, rec);
}
#endregion

1.重写(override)
重写(override):子类对父类中方法进行按照自身需要进行对方法体进行重写,重写方法与父类方法在访问权限、返回值、方法名以及参数不变。
2.重载(overload)
重载(overload):在一个类中对同一方法名按照不同的需求编写出多个方法,方法名相同,但是参数的类型或者个数不能相同,返回值类型不能作为重载的标志。
3.覆写(new)
覆写(overwrite):用 new 实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。

2、无边框拖动(点标题框)

 #region 无边框拖动private Point mPoint;private void labTitle_MouseDown(object sender, MouseEventArgs e){//获取焦点mPoint = e.Location;}private void labTitle_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);}}#endregion

3、关闭图标
图标获取(阿里巴巴矢量图):https://www.iconfont.cn/

using Timer = System.Windows.Forms.Timer;
public LoginForm()
{InitializeComponent();//初始化定时器,绑定触发函数mCloseTimer.Interval = 10;mCloseTimer.Tick += mCloseTimer_Tick;
}
#region 淡出效果
private Timer mCloseTimer = new Timer();
private void mCloseTimer_Tick(object? sender, EventArgs e)
{if (this.Opacity >= 0.025){this.Opacity -= 0.025;}else{this.mCloseTimer.Enabled = false;this.Close();}
}
/// <summary>
/// 关闭淡出效果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void picClose_Click(object sender, EventArgs e)
{//开启定时器this.mCloseTimer.Enabled = true;
}
#endregion

4、完整代码

using System.Drawing.Drawing2D;
using Timer = System.Windows.Forms.Timer;namespace LoginForm
{public partial class LoginForm : Form{public LoginForm(){InitializeComponent();//初始化定时器,绑定触发函数mCloseTimer.Interval = 10;mCloseTimer.Tick += mCloseTimer_Tick;}#region 窗体渐变效果protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);//获取画布Graphics graphics = e.Graphics;//获取矩形(目标窗体)Rectangle rec = new Rectangle(0, 0, this.Width, this.Height);//画刷 :指定渐变色和渐变方向LinearGradientBrush linearGradientBrush = new LinearGradientBrush(rec, Color.FromArgb(255, 101, 127), Color.FromArgb(93, 127, 124), LinearGradientMode.BackwardDiagonal);graphics.FillRectangle(linearGradientBrush, rec);}#endregion#region 无边框拖动private Point mPoint;private void labTitle_MouseDown(object sender, MouseEventArgs e){//获取焦点mPoint = e.Location;}private void labTitle_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);}}#endregion#region 淡出效果private Timer mCloseTimer = new Timer();private void mCloseTimer_Tick(object? sender, EventArgs e){if (this.Opacity >= 0.025){this.Opacity -= 0.025;}else{this.mCloseTimer.Enabled = false;this.Close();}}/// <summary>/// 关闭淡出效果/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void picClose_Click(object sender, EventArgs e){//开启定时器this.mCloseTimer.Enabled = true;}#endregion}
}
关键字:服务器维护工程师_个人信息网站html_灯塔网站seo_广告公司网站制作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: