C#仿QQ皮肤----基窗体FormBase与基用户控件FormBase1的实现(5)_我的 ...

第七八步,设置的默认皮肤

跟上面的实现 方法是一样的,这三个实现方法是一样的,在这里不在多解释了

代码
 #region //设置皮肤色ChangeSkinColor


public void PerformChangeSkinColor()
{
PerformChangeSkinColor(SkinColor.Undefault);
}

//设置皮肤色
        public void PerformChangeSkinColor(SkinColor skinColor)
{
try
{
this.SuspendRedraw();

ChangeSkinColor(skinColor);
}
catch
{
throw;
}
finally
{
this.ResumeRedraw();
}
}

 

 

{zh1}一步,就是当修改皮肤是我们要做什么了

  其实也不是很难的,只要调用一些方法就可以,大家如果 想知道 每个方法的意思 的话,可以自己转到定义去看, 当然在说到皮肤控件是我会一一说明 的

实现 代码

代码
//修改皮肤色时
        public virtual void ChangeSkinColor(SkinColor skinColor)
{
if (this.CurrentSkinColor != skinColor)
{
this.ReSetFormBitmap();
if (skinColor != SkinColor.Undefault)
{
Shared.ChangeSkinColor(skinColor, 
this);
}
}
else
{
this.ReSetFormBitmap();
Shared.ChangeControlsSkinColor(
this);
}
this.CurrentSkinColor = Shared.CurrentSkinColor;
}

 

这个实体基本上就是这样实现 的,FormBase跟窗体的实现 是一样的,只是在新建的时候创建的是用户控件,实现 的方法没有二样,

      有了这个窗体就为了们实现FunctionFormBase这个窗体打下了基础,下一次的文章我会接着说FunctionFormBase这个窗体的实现 也就是常用的添加,删除的小窗体,先看看效果吧!!!

 

 

效果就是这样的,

下面是这个窗体实现的所有代码

 

代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using System.IO;
using CRD.Common;

namespace CRD.WinUI.Forms
{
/// <summary>
/// 常用的窗体之一,用于添加修改等弹出窗体
/// </summary>
    public partial class FormBase : Form
{
//默认的肤色 这是一个枚举
        private SkinColor _currentSkinColor = SkinColor.Default;

//设置窗体无边框
        private FormBorderStyle _formBorderStyle = FormBorderStyle.None;

//得到一个值表示 是否重绘
        private bool _isRedrawSuspended;

//当前应用的皮肤
        public SkinColor CurrentSkinColor
{
get { return _currentSkinColor; }
set { _currentSkinColor = value; }
}

//指定方法或是属性是否可以在编辑器中查看Never始终不能,Always始终是可以的,Advanced只有高级用户才能查看
        [EditorBrowsable(EditorBrowsableState.Never)]
public new FormBorderStyle FormBorderStyle
{
get { return base.FormBorderStyle; }
set { base.FormBorderStyle = value; }
}

//指定事件或是属性是否显示在属性窗口中
//[Browsable(false)]
//指定事件或是属性是否显示在属性窗口中
        [Browsable(true)]
public FormBorderStyle FormStyle
{
get { return _formBorderStyle; }
set { _formBorderStyle = value; }
}

//得到一个值表示 是否重绘
        public bool IsRedrawSuspended
{
get { return _isRedrawSuspended; }
}

//构造函数
        public FormBase()
{
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
InitializeComponent();
}




郑重声明:资讯 【C#仿QQ皮肤----基窗体FormBase与基用户控件FormBase1的实现(5)_我的 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——