效果图:
DevExpress版本为:15.2
创建登录窗体:
LoginFrm.cs
文本框控件(TextEdit):txtUserNo,txtPassWord
按钮控件(SimpleButton):btnLogin,btnClose
验证控件(DXValidationProvider):dxValidationProvider1
A1)txtPassWord控件设置:
this.txtPassWord.Properties.PasswordChar = '*';
按钮控件图标:属性-Image
public LoginFrm()
{
InitializeComponent();
this.txtPassWord.Properties.PasswordChar = '*';
//拉伸到适应编辑器的区域
this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
this.dxValidationProvider1.InitialCheckInvalid(this.txtUserNo, this.txtPassWord);
}
InitialCheckInvalid方法为自己封装的类里面:(ErrorText到时可根据输入内容自行修改代码)
/// <summary>
/// 验证方法
/// </summary>
/// <param name="dxValidationProvider1">DXValidationProvider</param>
/// /// <param name="text">提示文本</param>
/// <param name="controlList">需要验证的控件</param>
public static void InitialCheckInvalid(this DXValidationProvider dxValidationProvider1, params Control[] controlList)
{
Action<Control> action = (item) =>
{
dxValidationProvider1.SetValidationRule(item, new ConditionValidationRule
{
//ConditionOperator验证方式
ConditionOperator = ConditionOperator.IsNotBlank,
ErrorText = "不能为空",
// ErrorType = ErrorType.Warning,
});
dxValidationProvider1.SetIconAlignment(item, ErrorIconAlignment.MiddleRight);
};
foreach (var item in controlList)
action(item);
}
/// <summary>
/// 移除验证
/// </summary>
/// <param name="dxValidationProvider1">DXValidationProvider</param>
/// <param name="controlList">需要移除验证的控件</param>
public static void RemoveError(this DXValidationProvider dxValidationProvider1, params Control[] controlList)
{
foreach (var item in controlList)
dxValidationProvider1.RemoveControlError(item);
}
/// <summary>
/// 登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click(object sender, EventArgs e)
{
if (!ValidateDate()) return;
SplashScreenManager.ShowForm(typeof(SplashScreenFrm));
//SplashScreenManager.ShowDefaultWaitForm();
//SplashScreenManager.ShowDefaultSplashScreen();
Thread.Sleep(1000);
this.DialogResult = DialogResult.OK;
//SplashScreenManager.CloseForm(true);
}
SplashScreenManager.ShowForm(typeof(SplashScreenFrm))
是里面的SplashScreenFrm根据splashScreenManager进行添加,之后可以随意修改
/// <summary>
/// 取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
this.Dispose();
}
/// <summary>
/// 验证数据有效性
/// </summary>
private bool ValidateDate()
{
if (!dxValidationProvider1.Validate())
return false;
if (this.txtUserNo.Text.Trim() != "123" && this.txtPassWord.Text.Trim() != "123")
return false;
return true;
}
Program.CS里面Main()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
BonusSkins.Register();
SkinManager.EnableFormSkins();
UserLookAndFeel.Default.SetSkinStyle("DevExpress Style");
var loginFrm = new LoginFrm();
loginFrm.ShowDialog();
if (loginFrm.DialogResult == DialogResult.OK)
{
Application.Run(new MainFrm());
}
主窗体:
需要在构造函数汇中关闭SplashScreenManager的启动窗体
public MainFrm()
{
InitializeComponent();
/*关闭闪屏窗体*/
SplashScreenManager.CloseForm(true);
}