您的位置:首页 > 其它

简单的实现QQ通信功能(三)

2014-11-05 22:53 281 查看
第三部分:登陆界面的设计及代码

一:效果图及界面设计

1.效果图:



2.界面设计:

(1)仿照QQ的登陆界面,右上角放了三个Label,用来做关闭、最小化和设置,使用了它们的Click事件当做按钮用。

(2)上面是一个pictureBox放一个图片。

(3)下面用tableLayoutPanel布局。

(4)tableLayoutPanel左侧图片和图片右下角的在线图放在一个Panel里,这个Panel占3行。

(5)用户名用ComboBox,密码框用TextBox,登陆用了个Button。

(6)用到的各个控件的Name:

关闭按钮:closewindow,最小化按钮:smallwindow,上面的大图片:pictureBox1,状态图标:zhuangtai;

用户名框:combuid,密码框:textpwd,登陆按钮:btnlogin,放左右两个图片imageList1;

右键菜单:contextMenuStrip1,右键菜单里用到的图片:imageList2。

二.:代码设计:

//记录更改状态,默认为1是在线
intzt=1;

//记录登录者的变量
privatestringuid;

publicstringUid
{
get{returnuid;}
set{uid=value;}
}

publicLogin()
{
InitializeComponent();
}
//界面加载
privatevoidLogin_Load(objectsender,EventArgse)
{
//设置透明,需要先在设计中将要透明控件的backcolor设置为Transparent
shezhi.Parent=this.pictureBox1;
smallwindow.Parent=this.pictureBox1;
closewindow.Parent=this.pictureBox1;
zhuangtai.Parent=this.pictureBox2;
//设置左右两个图片
pictureBox3.Image=imageList1.Images[0];
pictureBox4.Image=imageList1.Images[1];

}//关闭窗口按钮
privatevoidclosewindow_Click(objectsender,EventArgse)
{
this.Close();
}
//关闭按钮鼠标放上去变色
privatevoidclosewindow_MouseEnter_1(objectsender,EventArgse)
{
closewindow.BackColor=Color.LightCoral;
}
//关闭按钮鼠标离开恢复颜色
privatevoidclosewindow_MouseLeave_1(objectsender,EventArgse)
{
closewindow.BackColor=Color.Transparent;
}
//最小化按钮最小化
privatevoidsmallwindow_Click_1(objectsender,EventArgse)
{
this.WindowState=FormWindowState.Minimized;
}

//实现鼠标点在上面大图片上拖动窗体的代码
intx;
inty;

privatevoidpictureBox1_MouseDown(objectsender,MouseEventArgse)
{
x=e.X;
y=e.Y;
}

privatevoidpictureBox1_MouseMove(objectsender,MouseEventArgse)
{
if(e.Button==System.Windows.Forms.MouseButtons.Left)
{
this.Left=this.Left+(e.X-x);
this.Top=this.Top+(e.Y-y);
}
}
//密码框获得焦点时改为密码框,清空,字体颜色变化
privatevoidtextpwd_Enter(objectsender,EventArgse)
{
textpwd.Text="";
textpwd.ForeColor=Color.Black;
textpwd.PasswordChar=Convert.ToChar("●");
}


//用户名框鼠标点进去时,清空,字体颜色变化
privatevoidcombuid_MouseDown_1(objectsender,MouseEventArgse)
{
combuid.Text="";
combuid.ForeColor=Color.Black;
}

//登录按钮按下时
privatevoidbtnlogin_Click_1(objectsender,EventArgse)
{
//取用户名密码,查询数据库
stringuid=combuid.Text.ToString();
stringpwd=textpwd.Text.ToString();
UsersTableAdapteradp=newUsersTableAdapter();
qqdata.UsersDataTabletable=adp.LoginCheck(uid,pwd);
//判断登录是否成功
if(table.Rows.Count>0)
{
//成功之后this.DialogResult设为OK
this.DialogResult=DialogResult.OK;
Uid=table[0].UserName;//将用户名传到Uid
adp.UpdateStateByCode(zt,uid);//将状态更改
adp.UpdateLasttimeByCode(DateTime.Now,uid);//将登录时间记录
}
else
{
MessageBox.Show("账号密码错误!");
}
}

//头像右下角图标点击的时候弹出右键菜单

privatevoidzhuangtai_Click_1(objectsender,EventArgse)
{
contextMenuStrip1.Show(zhuangtai,0,18);
}

//右键菜单选择在线的时候

privatevoid在线ToolStripMenuItem_Click(objectsender,EventArgse)
{
zhuangtai.Image=imageList2.Images[3];
zt=Convert.ToInt32(在线ToolStripMenuItem.Tag);
}

//右键菜单选择隐身的时候

privatevoid隐身ToolStripMenuItem_Click(objectsender,EventArgse)
{
zhuangtai.Image=imageList2.Images[2];
zt=Convert.ToInt32(隐身ToolStripMenuItem.Tag);
}

//右键菜单选择忙碌的时候

privatevoid忙碌ToolStripMenuItem_Click(objectsender,EventArgse)
{
zhuangtai.Image=imageList2.Images[1];
zt=Convert.ToInt32(忙碌ToolStripMenuItem.Tag);
}

//右键菜单选择离开的时候

privatevoid离开ToolStripMenuItem_Click(objectsender,EventArgse)
{
zhuangtai.Image=imageList2.Images[0];
zt=Convert.ToInt32(离开ToolStripMenuItem.Tag);
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐