ImageVerifierCode 换一换
你正在下载:

QQ代码.docx

[预览]
格式:DOCX , 页数:85 ,大小:206.94KB ,
资源ID:23141644      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23141644.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(QQ代码.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

QQ代码.docx

1、QQ代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Aptech.UI;using System.Data.SqlClient;using System.Media;namespace MyQQProgram / / 登录主窗体 / public partial class MainForm : Form int

2、fromUserId; / 消息的发起者 int friendFaceId; / 发消息的好友的头像Id int messageImageIndex = 0; / 工具栏中的消息图标的索引 public MainForm() InitializeComponent(); private void MainForm_Load(object sender, EventArgs e) / 工具栏的消息图标 tsbtnMessageReading.Image = ilMessage.Images0; /显示个人的信息 ShowSelfInfo(); / 添加 SideBar 的两个组 sbFriend

3、s.AddGroup(我的好友); sbFriends.AddGroup(陌生人); / 向我的好友组中添加我的好友列表 ShowFriendList(); #region cmsFriendList控件部分 / 显示大、小头像视图切换 private void tsmiView_Click(object sender, EventArgs e) if (sbFriends.View = SbView.LargeIcon) sbFriends.View = SbView.SmallIcon; tsmiView.Text = 显示大头像; else if (sbFriends.View = Sb

4、View.SmallIcon) sbFriends.View = SbView.LargeIcon; tsmiView.Text = 显示小头像; / 删除好友 private void tsmiDelete_Click(object sender, EventArgs e) DialogResult result; / 对话框结果 int deleteResult = 0; / 操作结果 if (sbFriends.SeletedItem != null) result = MessageBox.Show(确实要删除该好友吗?, 提示, MessageBoxButtons.YesNo, Me

5、ssageBoxIcon.Question); if (result = DialogResult.Yes) / 确认删除 if (sbFriends.VisibleGroup = sbFriends.Groups0) DBHelper.connection.Open(); string sql = string.Format( DELETE FROM Friends WHERE HostId=0 AND FriendId=1,UserHelper.loginId, Convert.ToInt32(sbFriends.SeletedItem.Tag); SqlCommand cmd = new

6、 SqlCommand(sql, DBHelper.connection); int results = -1; try results = Convert.ToInt32(cmd.ExecuteScalar(); catch (Exception ex) MessageBox.Show(ex.Message); finally DBHelper.connection.Close(); if (deleteResult = 1) MessageBox.Show(好友已删除, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); sbFri

7、ends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem); else MessageBox.Show(好友已删除, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem); / 将选中的人加为好友 private void tsmiAddFriend_Click(object sender, EventArgs e) int result = 0; /

8、 操作结果 DBHelper.connection.Open(); string sql = string.Format( INSERT INTO Friends (HostId, FriendId) VALUES(0,1), UserHelper.loginId, Convert.ToInt32(sbFriends.SeletedItem.Tag); SqlCommand cmd = new SqlCommand(sql, DBHelper.connection); result = Convert.ToInt32(cmd.ExecuteNonQuery(); if (result = 1)

9、 MessageBox.Show(添加成功!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem); ShowFriendList(); / 更新好友列表 else MessageBox.Show(添加失败,请稍候再试!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); #endregion #regiontsOperation控件部分 / 显示个

10、人信息窗体 private void tsbtnPersonalInfo_Click(object sender, EventArgs e) PersonInfoForm PersonInfoForm = new PersonInfoForm(); PersonInfoForm.mainForm = this; / 将当前窗体本身传给个人信息窗体 PersonInfoForm.Show(); / 显示查找好友窗体 private void tsbtnSearchFriend_Click(object sender, EventArgs e) SearchFriendFrom searchFri

11、endForm = new SearchFriendFrom(); searchFriendForm.Show(); / 点击更新好友列表 private void tsbtnUpdateFriendList_Click(object sender, EventArgs e) ShowFriendList(); / 单击时显示请求好友消息窗体 private void tsbtnMessageReading_Click(object sender, EventArgs e) tmrAddFriend.Stop(); / 消息timer停止运行 / 图片恢复正常 messageImageInde

12、x = 0; tsbtnMessageReading.Image = ilMessage.ImagesmessageImageIndex; / 显示系统消息窗体 RequestForm requestForm = new RequestForm(); requestForm.Show(); / 退出 private void tsbtnExit_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(确实要退出吗?, 操作确认, MessageBoxButtons.YesNo, MessageBoxIcon

13、.Question); if (result = DialogResult.Yes) Application.Exit(); #endregion / 显示右键菜单时,控制哪些菜单不可见 private void cmsFriendList_Opening(object sender, CancelEventArgs e) / 如果没有选中的项 if (sbFriends.SeletedItem = null) tsmiDelete.Visible = false; else tsmiDelete.Visible = true; / 如果选中的是陌生人,显示加为好友菜单 if (sbFrien

14、ds.SeletedItem != null & sbFriends.SeletedItem.Parent = sbFriends.Groups1) tsmiAddFriend.Visible = true; else tsmiAddFriend.Visible = false; / 双击一项,弹出聊天窗体 private void sbFriends_ItemDoubleClick(SbItemEventArgs e) / 消息timer停止运行 if (tmrChatRequest.Enabled = true) tmrChatRequest.Stop(); e.Item.ImageInd

15、ex = this.friendFaceId; / 显示聊天窗体 ChatForm chatForm = 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(); / 可见组发生变化时,发出声音 private void sbFriends_VisibleGroupC

16、hanged(SbGroupEventArgs e) SoundPlayer player = new SoundPlayer(folder.wav); player.Play(); #region 三个计时器部分 / 定时扫描数据库,找到未读消息 private void tmrMessage_Tick(object sender, EventArgs e) ShowFriendList(); / 刷新好友列表 int messageTypeId = 1; / 消息类型 int messageState = 1; / 消息状态 DBHelper.connection.Open(); /找出未

17、读消息对应的好友Id string sql = string.Format( SELECT Top 1 FromUserId, MessageTypeId, MessageState FROM Messages WHERE ToUserId=0 AND MessageState=0, UserHelper.loginId); /消息有两种类型:聊天消息、添加好友消息 SqlCommand comm = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader = comm.ExecuteReader(); / 循环读出

18、一个未读消息 while (dataReader.Read() this.fromUserId = (int)dataReaderFromUserId; messageTypeId = (int)dataReaderMessageTypeId; messageState = (int)dataReaderMessageState; dataReader.Close(); / 判断消息类型,如果是添加好友消息,就启动喇叭timer,让小喇叭闪烁 if (messageTypeId = 2 & messageState = 0) SoundPlayer player = new SoundPlay

19、er(system.wav); player.Play(); tmrAddFriend.Start(); / 如果是聊天消息,就启动聊天timer,让好友头像闪烁 else if (messageTypeId = 1 & messageState = 0) / 获得发消息的人的头像Id sql = SELECT FaceId FROM Users WHERE Id= + this.fromUserId; this.friendFaceId = Convert.ToInt32(comm.ExecuteScalar(); / 设置发消息的好友的头像索引 / 如果发消息的人没有在列表中就添加到陌生人

20、列表中 if (!HasShowUser(fromUserId) UpdateStranger(fromUserId); SoundPlayer player = new SoundPlayer(msg.wav); player.Play(); tmrChatRequest.Start(); / 启动闪烁头像定时器 DBHelper.connection.Close(); / 控制喇叭闪烁 private void tmrAddFriend_Tick(object sender, EventArgs e) / 反复修改它的图像 messageImageIndex = messageImageI

21、ndex = 0 ? 1 : 0; tsbtnMessageReading.Image = ilMessage.ImagesmessageImageIndex; / 让相应的好友头像闪烁 private void tmrChatRequest_Tick(object sender, EventArgs e) / 循环好友列表两个组中的每个item,找到发消息的好友,让他的头像闪烁 for (int i = 0; i 2; i+) for (int j = 0; j sbFriends.Groupsi.Items.Count; j+) if (Convert.ToInt32(sbFriends.

22、Groupsi.Itemsj.Tag) = this.fromUserId) if (sbFriends.Groupsi.Itemsj.ImageIndex 100) sbFriends.Groupsi.Itemsj.ImageIndex = 100;/ 索引为100的图片是一个空白图片 else sbFriends.Groupsi.Itemsj.ImageIndex = this.friendFaceId; sbFriends.Invalidate(); / 重新绘制 #endregion / / 登录后显示个人的信息 / public void ShowSelfInfo() string

23、nickName = ; / 昵称 int faceId = 0; / 头像索引 / 取得当前用户的昵称、头像 if (DBHelper.connection.State = ConnectionState.Closed) DBHelper.connection.Open(); string sql = string.Format(SELECT NickName, FaceId FROM Users WHERE Id=0,UserHelper.loginId); SqlCommand comm = new SqlCommand(sql, DBHelper.connection); SqlDat

24、aReader dataReader = comm.ExecuteReader(); if (dataReader.Read() if (!(dataReaderNickName is DBNull) / 判断数据库类型是否为空 nickName = Convert.ToString(dataReaderNickName); faceId = Convert.ToInt32(dataReaderFaceId); dataReader.Close(); / 在窗体标题显示登录的昵称、号码 this.Text = UserHelper.loginId.ToString(); this.picFac

25、e.Image = ilFaces.ImagesfaceId; this.lblLoginId.Text = string.Format(0(1), nickName, UserHelper.loginId.ToString(); DBHelper.connection.Close(); / / 向我的好友组中添加我的好友列表 / private void ShowFriendList() / 清空原来的列表 sbFriends.Groups0.Items.Clear(); / 查找有哪些好友 DBHelper.connection.Open(); string sql = string.Fo

26、rmat( SELECT FriendId,NickName,FaceId FROM Users,Friends WHERE Friends.HostId=0 AND Users.Id=Friends.FriendId, UserHelper.loginId); SqlCommand comm = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader = comm.ExecuteReader(); / 循环添加好友列表 while (dataReader.Read() / 创建一个SideBar项 SbItem i

27、tem = new SbItem(string)dataReaderNickName, (int)dataReaderFaceId); item.Tag = (int)dataReaderFriendId; / 将号码放在Tag属性中 / SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始 / Groups0表示SideBar中的第一个组,也就是“我的好友”组 sbFriends.Groups0.Items.Add(item); / 向SideBar的“我的好友”组中添加项 dataReader.Close(); DBHelper.connection.Close ();

28、/ / 判断发消息的人是否在列表中 / private bool HasShowUser(int loginId) bool find = false; / 表示是否在当前显示出的用户列表中找到了该用户 / 循环 SideBar 中的2个组,寻找发消息的人是否在列表中 for (int i = 0; i 2; i+) for (int j = 0; j sbFriends.Groupsi.Items.Count; j+) if (Convert.ToInt32(sbFriends.Groupsi.Itemsj.Tag) = loginId) find = true; return find; / / 更新陌生人列表 / private void UpdateStranger(int loginId) DBHelper.connection.Open(); / 选出这个人的基本信息 string sql = SELECT NickName, FaceId F

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1