繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> 组件控件开发 >> 登陆框控件

登陆框控件

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:124  文字大小:【】【】【
简介:好久以前作的东西,最近拿出来溜溜,最近一直没有作应用程序方面的东西了,有点生疏! 希望我的这篇东西能对您有所帮助,大家共同探讨共同进步,此文章比较简单!是作一个通用的登陆框控件! 首先建一解决项目LoginCont...
关键字:控件 登陆

好久以前作的东西,最近拿出来溜溜,最近一直没有作应用程序方面的东西了,有点生疏! 希望我的这篇东西能对您有所帮助,大家共同探讨共同进步,此文章比较简单!是作一个通用的登陆框控件!

首先建一解决项目LoginControl,添加一个类库的项目LoginControl,然后添加用户控件ctlLogin

然后在ctlLogin.cs文件中写代码

//ctlLogin.cs

using System;

using System.Collections;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Windows.Forms;

using System.Text;

namespace LoginControl

{

///

/// ctlLogin 的摘要说明。

///

public class ctlLogin : System.Windows.Forms.UserControl

{

private System.Windows.Forms.Panel panel1;

private System.Windows.Forms.Label lHeader;

private System.Windows.Forms.Label lText;

private System.Windows.Forms.Button btnLogin;

private System.Windows.Forms.Label lPassword;

private System.Windows.Forms.Label lUsername;

private System.Windows.Forms.TextBox txtPassword;

private System.Windows.Forms.TextBox txtUsername;

private System.Windows.Forms.PictureBox pictureBox1;

private System.Windows.Forms.ErrorProvider errorProvider;

///

/// 必需的设计器变量。

///

private System.ComponentModel.Container components = null;

public event System.EventHandler Successful;

public event System.EventHandler Failed;

private ArrayList strUsername=new ArrayList();

private ArrayList strPassword=new ArrayList();

private int index=-1;

private string ErrMsg = "请输入正确的用户名和密码!";

public ctlLogin()

{

// 该调用是 Windows.Forms 窗体设计器所必需的。

InitializeComponent();

// TODO: 在 InitializeComponent 调用后添加任何初始化

strUsername.Clear();

strPassword.Clear();

}

///

/// 清理所有正在使用的资源。

///

protected override void Dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region 组件设计器生成的代码

///

/// 设计器支持所需的方法 - 不要使用代码编辑器

/// 修改此方法的内容。

///

private void InitializeComponent()

{

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ctlLogin));

this.panel1 = new System.Windows.Forms.Panel();

this.pictureBox1 = new System.Windows.Forms.PictureBox();

this.lText = new System.Windows.Forms.Label();

this.lHeader = new System.Windows.Forms.Label();

this.btnLogin = new System.Windows.Forms.Button();

this.lPassword = new System.Windows.Forms.Label();

this.lUsername = new System.Windows.Forms.Label();

this.txtPassword = new System.Windows.Forms.TextBox();

this.txtUsername = new System.Windows.Forms.TextBox();

this.errorProvider = new System.Windows.Forms.ErrorProvider();

this.panel1.SuspendLayout();

this.SuspendLayout();

//

// panel1

//

this.panel1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;

this.panel1.Controls.Add(this.pictureBox1);

this.panel1.Controls.Add(this.lText);

this.panel1.Controls.Add(this.lHeader);

this.panel1.Location = new System.Drawing.Point(4, 4);

this.panel1.Name = "panel1";

this.panel1.Size = new System.Drawing.Size(480, 52);

this.panel1.TabIndex = 0;

//

// pictureBox1

//

this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));

this.pictureBox1.Location = new System.Drawing.Point(432, 12);

this.pictureBox1.Name = "pictureBox1";

this.pictureBox1.Size = new System.Drawing.Size(40, 32);

this.pictureBox1.TabIndex = 6;

this.pictureBox1.TabStop = false;

//

// lText

//

this.lText.Location = new System.Drawing.Point(36, 24);

this.lText.Name = "lText";

this.lText.Size = new System.Drawing.Size(360, 20);

this.lText.TabIndex = 5;

this.lText.Text = "请输入您的用户名和密码.";

this.lText.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

//

// lHeader

//

this.lHeader.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

this.lHeader.Location = new System.Drawing.Point(12, 4);

this.lHeader.Name = "lHeader";

this.lHeader.Size = new System.Drawing.Size(384, 20);

this.lHeader.TabIndex = 4;

this.lHeader.Text = "登陆";

this.lHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

//

// btnLogin

//

this.btnLogin.FlatStyle = System.Windows.Forms.FlatStyle.Popup;

this.btnLogin.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

this.btnLogin.Location = new System.Drawing.Point(376, 292);

this.btnLogin.Name = "btnLogin";

this.btnLogin.Size = new System.Drawing.Size(70, 20);

this.btnLogin.TabIndex = 14;

this.btnLogin.Text = "登 陆";

this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);

//

// lPassword

//

this.lPassword.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

this.lPassword.Location = new System.Drawing.Point(76, 252);

this.lPassword.Name = "lPassword";

this.lPassword.Size = new System.Drawing.Size(80, 20);

this.lPassword.TabIndex = 16;

this.lPassword.Text = "密 码";

this.lPassword.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

//

// lUsername

//

this.lUsername.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

this.lUsername.Location = new System.Drawing.Point(76, 212);

this.lUsername.Name = "lUsername";

this.lUsername.Size = new System.Drawing.Size(80, 20);

this.lUsername.TabIndex = 15;

this.lUsername.Text = "用户名";

this.lUsername.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

//

// txtPassword

//

this.txtPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

this.txtPassword.Location = new System.Drawing.Point(176, 252);

this.txtPassword.Name = "txtPassword";

this.txtPassword.PasswordChar = '*';

this.txtPassword.Size = new System.Drawing.Size(270, 21);

this.txtPassword.TabIndex = 13;

this.txtPassword.Text = "";

this.txtPassword.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtPassword_KeyPress);

this.txtPassword.Leave += new System.EventHandler(this.Control_Leave);

this.txtPassword.Enter += new System.EventHandler(this.Control_Enter);

//

// txtUsername

//

this.txtUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

this.txtUsername.Location = new System.Drawing.Point(176, 212);

this.txtUsername.Name = "txtUsername";

this.txtUsername.Size = new System.Drawing.Size(270, 21);

this.txtUsername.TabIndex = 12;

this.txtUsername.Text = "";

this.txtUsername.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtUsername_KeyPress);

this.txtUsername.Leave += new System.EventHandler(this.Control_Leave);

this.txtUsername.Enter += new System.EventHandler(this.Control_Enter);

//

// errorProvider

//

this.errorProvider.ContainerControl = this;

//

// ctlLogin

//

this.Controls.Add(this.btnLogin);

this.Controls.Add(this.lPassword);

this.Controls.Add(this.lUsername);

this.Controls.Add(this.txtPassword);

this.Controls.Add(this.txtUsername);

this.Controls.Add(this.panel1);

this.Name = "ctlLogin";

this.Size = new System.Drawing.Size(484, 348);

this.Load += new System.EventHandler(this.ctlLogin_Load);

this.panel1.ResumeLayout(false);

this.ResumeLayout(false);

}

#endregion

private void ctlLogin_Load(object sender, System.EventArgs e)

{

// strUsername.Add(txtUsername.Text.Trim());

// strPassword.Add(txtPassword.Text.Trim());

}

private void txtPassword_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)

{

if(e.KeyChar==(char)13)

{

btnLogin_Click(sender,new EventArgs());

}

}

private void btnLogin_Click(object sender, System.EventArgs e)

{

bool b = CheckPassword(Username, Password);

if (b)

{

Successful(this, new System.EventArgs());

}

else

{

Failed(this, new System.EventArgs());

}

}

///

/// 判断用户名和密码是否正确

///

/// 所有用户

/// 所有用户密码

///

private bool CheckPassword(ArrayList alUser,ArrayList alPWD)

{

string strUser="";

string strPWD="";

if(alUser.Count>0 && alPWD.Count>0)

{

for(int i=0;i {

strUser=alUser[i].ToString();

strPWD=alPWD[i].ToString().Trim();

if(strUser.Trim()==txtUsername.Text.Trim() && strPWD.Trim()==txtPassword.Text.Trim())

{

Index_Username=i;

errorProvider.Dispose();

return true;

}

if(i == alUser.Count-1)

{

errorProvider.SetError(btnLogin, ErrMsg);

return false;

}

}

}

return false;

}

private void Control_Enter(object sender, System.EventArgs e)

{

Control ctl=(Control)sender;

ctl.BackColor=Color.LemonChiffon;

}

private void Control_Leave(object sender, System.EventArgs e)

{

Control ctl=(Control)sender;

ctl.BackColor=Color.White;

}

private void txtUsername_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)

{

if(e.KeyChar==(char)13)

{

txtPassword.Focus();

}

}

///

/// 所有用户

///

public ArrayList Username

{

get

{

return strUsername;

}

set

{

strUsername = value;

}

}

///

/// 所有用户密码

///

public ArrayList Password

{

get

{

return strPassword;

}

set

{

strPassword = value;

}

}

///

/// 在用户数组Username中的索引

///

public int Index_Username

{

get

{

return index;

}

set

{

index=value;

}

}

///

/// 错误信息

///

public string ErrorMessage

{

get

{

return ErrMsg;

}

set

{

ErrMsg = value;

}

}

}

}

接着,您就可以编译成LoginControl.dll

再在解决项目中添加一个测试项目Test,然后在工具箱中添加/移除项中添加刚才编译的LoginControl.dll,添加一测试界面为frmTest,然后在工具箱中把ctlLogin控件拖到frmTest页面中

然后在frmTest.cs中来测试刚才的控件

//frmTest.cs

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using InformationClass; //自己写的一个测试类

namespace Test

{

///

/// Form1 的摘要说明。

///

public class frmTest : System.Windows.Forms.Form

{

private LoginControl.ctlLogin ctlLogin;

///

/// 必需的设计器变量。

///

private System.ComponentModel.Container components = null;

private Users objUsers=new Users(); //实例化自定义的登陆用户集合类

private User m_objUser=new User(); //实例化自定义的登陆用户类

public frmTest()

{

//

// Windows 窗体设计器支持所必需的

//

InitializeComponent();

//

// TODO: 在 InitializeComponent 调用后添加任何构造函数代码

//

}

///

/// 清理所有正在使用的资源。

///

protected override void Dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region Windows 窗体设计器生成的代码

///

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

///

private void InitializeComponent()

{

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(frmTest));

this.ctlLogin = new LoginControl.ctlLogin();

this.SuspendLayout();

//

// ctlLogin

//

this.ctlLogin.ErrorMessage = "请输入正确的用户名和密码!";

this.ctlLogin.Index_Username = -1;

this.ctlLogin.Location = new System.Drawing.Point(0, 0);

this.ctlLogin.Name = "ctlLogin";

this.ctlLogin.Size = new System.Drawing.Size(484, 348);

this.ctlLogin.TabIndex = 0;

this.ctlLogin.Failed += new System.EventHandler(this.ctlLogin_Failed);

this.ctlLogin.Load += new System.EventHandler(this.Form1_Load);

this.ctlLogin.Successful += new System.EventHandler(this.ctlLogin_Successful);

//

// frmTest

//

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(484, 345);

this.Controls.Add(this.ctlLogin);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

this.MaximizeBox = false;

this.MinimizeBox = false;

this.Name = "frmTest";

this.Text = "系统登陆";

this.Load += new System.EventHandler(this.Form1_Load);

this.ResumeLayout(false);

}

#endregion

///

/// 应用程序的主入口点。

///

[STAThread]

static void Main()

{

Application.Run(new frmTest());

}

private void ctlLogin_Failed(object sender, System.EventArgs e)

{

MessageBox.Show("登陆失败!请输入正确的用户名和密码!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

private void ctlLogin_Successful(object sender, System.EventArgs e)

{

m_objUser=objUsers[ctlLogin.Index_Username];

MessageBox.Show("登陆成功!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

private void Form1_Load(object sender, System.EventArgs e)

{

objUsers=new ReadData().GetUsers();

if(objUsers.Count>0)

{

foreach(User objUser in objUsers)

{

ctlLogin.Username.Add(objUser.Name);

ctlLogin.Password.Add(objUser.Password);

}

}

}

}

}

运行程序

如果登陆失败就会出现

如果登陆成功

就这样,小小的一个登陆控件就作好了,希望我的这篇文章能对于刚学没有多久的.NET程序员有所帮助

如果有什么不足的地方,希望您能指正,谢谢

责任编辑:admin
相关文章