QQ代码.docx

上传人:b****1 文档编号:151108 上传时间:2023-04-28 格式:DOCX 页数:85 大小:206.94KB
下载 相关 举报
QQ代码.docx_第1页
第1页 / 共85页
QQ代码.docx_第2页
第2页 / 共85页
QQ代码.docx_第3页
第3页 / 共85页
QQ代码.docx_第4页
第4页 / 共85页
QQ代码.docx_第5页
第5页 / 共85页
QQ代码.docx_第6页
第6页 / 共85页
QQ代码.docx_第7页
第7页 / 共85页
QQ代码.docx_第8页
第8页 / 共85页
QQ代码.docx_第9页
第9页 / 共85页
QQ代码.docx_第10页
第10页 / 共85页
QQ代码.docx_第11页
第11页 / 共85页
QQ代码.docx_第12页
第12页 / 共85页
QQ代码.docx_第13页
第13页 / 共85页
QQ代码.docx_第14页
第14页 / 共85页
QQ代码.docx_第15页
第15页 / 共85页
QQ代码.docx_第16页
第16页 / 共85页
QQ代码.docx_第17页
第17页 / 共85页
QQ代码.docx_第18页
第18页 / 共85页
QQ代码.docx_第19页
第19页 / 共85页
QQ代码.docx_第20页
第20页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

QQ代码.docx

《QQ代码.docx》由会员分享,可在线阅读,更多相关《QQ代码.docx(85页珍藏版)》请在冰点文库上搜索。

QQ代码.docx

QQ代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingAptech.UI;

usingSystem.Data.SqlClient;

usingSystem.Media;

namespaceMyQQProgram

{

///

///登录主窗体

///

publicpartialclassMainForm:

Form

{

intfromUserId; //消息的发起者

intfriendFaceId;//发消息的好友的头像Id

intmessageImageIndex=0;//工具栏中的消息图标的索引

publicMainForm()

{

InitializeComponent();

}

privatevoidMainForm_Load(objectsender,EventArgse)

{

//工具栏的消息图标

tsbtnMessageReading.Image=ilMessage.Images[0];

//显示个人的信息

ShowSelfInfo();

//添加SideBar的两个组

sbFriends.AddGroup("我的好友");

sbFriends.AddGroup("陌生人");

//向我的好友组中添加我的好友列表

ShowFriendList();

}

#region"cmsFriendList控件部分"

//显示大、小头像视图切换

privatevoidtsmiView_Click(objectsender,EventArgse)

{

if(sbFriends.View==SbView.LargeIcon)

{

sbFriends.View=SbView.SmallIcon;

tsmiView.Text="显示大头像";

}

elseif(sbFriends.View==SbView.SmallIcon)

{

sbFriends.View=SbView.LargeIcon;

tsmiView.Text="显示小头像";

}

}

//删除好友

privatevoidtsmiDelete_Click(objectsender,EventArgse)

{

DialogResultresult;//对话框结果

intdeleteResult=0;//操作结果

if(sbFriends.SeletedItem!

=null)

{

result=MessageBox.Show("确实要删除该好友吗?

","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(result==DialogResult.Yes)//确认删除

{

if(sbFriends.VisibleGroup==sbFriends.Groups[0])

{

DBHelper.connection.Open();

stringsql=string.Format("DELETEFROMFriendsWHEREHostId={0}ANDFriendId={1}",UserHelper.loginId,Convert.ToInt32(sbFriends.SeletedItem.Tag));

SqlCommandcmd=newSqlCommand(sql,DBHelper.connection);

intresults=-1;

try

{

results=Convert.ToInt32(cmd.ExecuteScalar());

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

DBHelper.connection.Close();

}

if(deleteResult==1)

{

MessageBox.Show("好友已删除","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);

}

}

else

{

MessageBox.Show("好友已删除","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);

}

}

}

}

//将选中的人加为好友

privatevoidtsmiAddFriend_Click(objectsender,EventArgse)

{

intresult=0;//操作结果

DBHelper.connection.Open();

stringsql=string.Format("INSERTINTOFriends(HostId,FriendId)VALUES({0},{1})",UserHelper.loginId,Convert.ToInt32(sbFriends.SeletedItem.Tag));

SqlCommandcmd=newSqlCommand(sql,DBHelper.connection);

result=Convert.ToInt32(cmd.ExecuteNonQuery());

if(result==1)

{

MessageBox.Show("添加成功!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);

ShowFriendList();//更新好友列表

}

else

{

MessageBox.Show("添加失败,请稍候再试!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

}

#endregion

#region"tsOperation控件部分"

 

//显示个人信息窗体

privatevoidtsbtnPersonalInfo_Click(objectsender,EventArgse)

{

PersonInfoFormPersonInfoForm=newPersonInfoForm();

PersonInfoForm.mainForm=this;//将当前窗体本身传给个人信息窗体

PersonInfoForm.Show();

}

//显示查找好友窗体

privatevoidtsbtnSearchFriend_Click(objectsender,EventArgse)

{

SearchFriendFromsearchFriendForm=newSearchFriendFrom();

searchFriendForm.Show();

}

//点击更新好友列表

privatevoidtsbtnUpdateFriendList_Click(objectsender,EventArgse)

{

ShowFriendList();

}

//单击时显示请求好友消息窗体

privatevoidtsbtnMessageReading_Click(objectsender,EventArgse)

{

tmrAddFriend.Stop();//消息timer停止运行

//图片恢复正常

messageImageIndex=0;

tsbtnMessageReading.Image=ilMessage.Images[messageImageIndex];

//显示系统消息窗体

RequestFormrequestForm=newRequestForm();

requestForm.Show();

}

//退出

privatevoidtsbtnExit_Click(objectsender,EventArgse)

{

DialogResultresult=MessageBox.Show("确实要退出吗?

","操作确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(result==DialogResult.Yes)

{

Application.Exit();

}

}

#endregion

 

//显示右键菜单时,控制哪些菜单不可见

privatevoidcmsFriendList_Opening(objectsender,CancelEventArgse)

{

//如果没有选中的项

if(sbFriends.SeletedItem==null)

{

tsmiDelete.Visible=false;

}

else

{

tsmiDelete.Visible=true;

}

//如果选中的是陌生人,显示加为好友菜单

if(sbFriends.SeletedItem!

=null&&sbFriends.SeletedItem.Parent==sbFriends.Groups[1])

{

tsmiAddFriend.Visible=true;

}

else

{

tsmiAddFriend.Visible=false;

}

}

 

//双击一项,弹出聊天窗体

privatevoidsbFriends_ItemDoubleClick(SbItemEventArgse)

{

//消息timer停止运行

if(tmrChatRequest.Enabled==true)

{

tmrChatRequest.Stop();

e.Item.ImageIndex=this.friendFaceId;

}

//显示聊天窗体

ChatFormchatForm=ChatForm.GetChatForm(e.Item.Tag.ToString());

chatForm.friendId=Convert.ToInt32(e.Item.Tag);//号码

chatForm.nickName=e.Item.Text;//昵称

chatForm.faceId=e.Item.ImageIndex;//头像

chatForm.Show();

}

 

//可见组发生变化时,发出声音

privatevoidsbFriends_VisibleGroupChanged(SbGroupEventArgse)

{

SoundPlayerplayer=newSoundPlayer("folder.wav");

player.Play();

}

 

#region"三个计时器部分"

//定时扫描数据库,找到未读消息

privatevoidtmrMessage_Tick(objectsender,EventArgse)

{

ShowFriendList();//刷新好友列表

intmessageTypeId=1;//消息类型

intmessageState=1;//消息状态

DBHelper.connection.Open();

//找出未读消息对应的好友Id

stringsql=string.Format(

"SELECTTop1FromUserId,MessageTypeId,MessageStateFROMMessagesWHEREToUserId={0}ANDMessageState=0",UserHelper.loginId);

//消息有两种类型:

聊天消息、添加好友消息

 

SqlCommandcomm=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader=comm.ExecuteReader();

//循环读出一个未读消息

while(dataReader.Read())

{

this.fromUserId=(int)dataReader["FromUserId"];

messageTypeId=(int)dataReader["MessageTypeId"];

messageState=(int)dataReader["MessageState"];

}

dataReader.Close();

//判断消息类型,如果是添加好友消息,就启动喇叭timer,让小喇叭闪烁

if(messageTypeId==2&&messageState==0)

{

SoundPlayerplayer=newSoundPlayer("system.wav");

player.Play();

tmrAddFriend.Start();

}

//如果是聊天消息,就启动聊天timer,让好友头像闪烁

elseif(messageTypeId==1&&messageState==0)

{

//获得发消息的人的头像Id

sql="SELECTFaceIdFROMUsersWHEREId="+this.fromUserId;

this.friendFaceId=Convert.ToInt32(comm.ExecuteScalar());//设置发消息的好友的头像索引

//如果发消息的人没有在列表中就添加到陌生人列表中

if(!

HasShowUser(fromUserId))

{

UpdateStranger(fromUserId);

}

SoundPlayerplayer=newSoundPlayer("msg.wav");

player.Play();

tmrChatRequest.Start();//启动闪烁头像定时器

}

DBHelper.connection.Close();

}

 

//控制喇叭闪烁

privatevoidtmrAddFriend_Tick(objectsender,EventArgse)

{

//反复修改它的图像

messageImageIndex=messageImageIndex==0?

1:

0;

tsbtnMessageReading.Image=ilMessage.Images[messageImageIndex];

}

//让相应的好友头像闪烁

privatevoidtmrChatRequest_Tick(objectsender,EventArgse)

{

//循环好友列表两个组中的每个item,找到发消息的好友,让他的头像闪烁

for(inti=0;i<2;i++)

{

for(intj=0;j

{

if(Convert.ToInt32(sbFriends.Groups[i].Items[j].Tag)==this.fromUserId)

{

if(sbFriends.Groups[i].Items[j].ImageIndex<100)

{

sbFriends.Groups[i].Items[j].ImageIndex=100;//索引为100的图片是一个空白图片

}

else

{

sbFriends.Groups[i].Items[j].ImageIndex=this.friendFaceId;

}

sbFriends.Invalidate();//重新绘制

}

}

}

}

 

#endregion

 

///

///登录后显示个人的信息

///

publicvoidShowSelfInfo()

{

stringnickName="";//昵称

intfaceId=0;//头像索引

//取得当前用户的昵称、头像

if(DBHelper.connection.State==ConnectionState.Closed)

{

DBHelper.connection.Open();

}

stringsql=string.Format("SELECTNickName,FaceIdFROMUsersWHEREId={0}",UserHelper.loginId);

SqlCommandcomm=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader=comm.ExecuteReader();

if(dataReader.Read())

{

if(!

(dataReader["NickName"]isDBNull))//判断数据库类型是否为空

{

nickName=Convert.ToString(dataReader["NickName"]);

}

faceId=Convert.ToInt32(dataReader["FaceId"]);

}

dataReader.Close();

//在窗体标题显示登录的昵称、号码

this.Text=UserHelper.loginId.ToString();

this.picFace.Image=ilFaces.Images[faceId];

this.lblLoginId.Text=string.Format("{0}({1})",nickName,UserHelper.loginId.ToString());

DBHelper.connection.Close();

}

 

///

///向我的好友组中添加我的好友列表

///

privatevoidShowFriendList()

{

//清空原来的列表

sbFriends.Groups[0].Items.Clear();

//查找有哪些好友

DBHelper.connection.Open();

stringsql=string.Format(

"SELECTFriendId,NickName,FaceIdFROMUsers,FriendsWHEREFriends.HostId={0}ANDUsers.Id=Friends.FriendId",

UserHelper.loginId);

SqlCommandcomm=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader=comm.ExecuteReader();

//循环添加好友列表

while(dataReader.Read())

{

//创建一个SideBar项

SbItemitem=newSbItem((string)dataReader["NickName"],(int)dataReader["FaceId"]);

item.Tag=(int)dataReader["FriendId"];//将号码放在Tag属性中

//SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始

//Groups[0]表示SideBar中的第一个组,也就是“我的好友”组

sbFriends.Groups[0].Items.Add(item);//向SideBar的“我的好友”组中添加项

}

dataReader.Close();

DBHelper.connection.Close();

}

 

///

///判断发消息的人是否在列表中

///

privateboolHasShowUser(intloginId)

{

boolfind=false;//表示是否在当前显示出的用户列表中找到了该用户

//循环SideBar中的2个组,寻找发消息的人是否在列表中

for(inti=0;i<2;i++)

{

for(intj=0;j

{

if(Convert.ToInt32(sbFriends.Groups[i].Items[j].Tag)==loginId)

{

find=true;

}

}

}

returnfind;

}

 

///

///更新陌生人列表

///

privatevoidUpdateStranger(intloginId)

{

DBHelper.connection.Open();

//选出这个人的基本信息

stringsql="SELECTNickName,FaceIdF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2