⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.cs

📁 一个即时通信工具
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Model;
using BLL;
using Aptech.UI;

namespace MyQQ
{
    public partial class frmMain : Form
    {

        private bool _isFlickerMsgTip =true;
        private bool _isFlickerText = true;
        private string tempText = "";
        private Image _picMsgTip ;

        /// <summary>
        /// 临时存储消息队列
        /// </summary>
        private List<MessagesInfo> _MsgList;
        public frmMain()
        {

            InitializeComponent();
            _picMsgTip = btnToolMessage.Image; //
            AppSetter.AllHeaders = imgAllHeaders;
          //  _FlickerFaces = imgAllHeaders;
        }

        protected override void OnClosed(EventArgs e)
        {
            Application.Exit();
        }

        /// <summary>
        /// 显示我的好友列表信息
        /// </summary>
        private void BindMyFriends()
        {
            sbFriends.Groups[0].Items.Clear();
            List<FriendsInfo> _FList = Friends.GetFriends(AppSetter.CurrentUser.Id);
            foreach (FriendsInfo obj in _FList)
            {
                SbItem item=new SbItem(obj.Friend.NickName, obj.Friend.FaceId);
                item.ContextMenuStrip = cmsPopu;
                item.Tag=obj.Friend;

                sbFriends.Groups[0].Items.Add(item);
            }
        }

        /// <summary>
        /// 移到陌生人列表里
        /// </summary>
        /// <param name="entity"></param>
        private void MoveToStrangeList(UsersInfo entity)
        {
            SbItem item = new SbItem(entity.NickName, entity.FaceId);
            item.Tag = entity;
            sbFriends.Groups[1].Items.Add(item);
        }

       
        /// <summary>
        /// 刷新显示我的个人信息
        /// </summary>
        private void RefreshMyInfo()
        {
            this.Text = AppSetter.CurrentUser.Id.ToString();
            lblMyTitle.Text = AppSetter.CurrentUser.NickName + "(" + AppSetter.CurrentUser.Id.ToString() + ")";
            picMyHeader.Image = AppSetter.AllHeaders.Images[AppSetter.CurrentUser.FaceId];
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            RefreshMyInfo();
            sbFriends.AddGroup("我的好友");
            sbFriends.AddGroup("陌生人");
            sbFriends.Groups[0].Tag = "0";
            sbFriends.Groups[1].Tag = "1";
            BindMyFriends();

           timer1.Enabled = true;

           
        }

        private void LoadMessages()
        { 
        
        }

        private void btnToolAdd_Click(object sender, EventArgs e)
        {
            frmSearch frm= new frmSearch();
            frm.ShowDialog();
            BindMyFriends();
        }

        private void btnToolEdit_Click(object sender, EventArgs e)
        {
            frmProfileSet frm = new frmProfileSet();
            frm.ShowDialog();
            //如果资料更新就刷新我的显示信息
            if (frm.HasUpdate)  
            {
                RefreshMyInfo();
            }
        }

        private void sbFriends_ItemDoubleClick(Aptech.UI.SbItemEventArgs e)
        {
            frmChat frm=new frmChat();
            frm.CurrentFriend=(UsersInfo)e.Item.Tag;
            frm.Show();
        }

        private void btnToolHeaderConfig_Click(object sender, EventArgs e)
        {
            frmHeadersList frm = new frmHeadersList();
            frm.ShowDialog();
            this.picMyHeader.Image =AppSetter.AllHeaders.Images[AppSetter.CurrentUser.FaceId];
        }


        /// <summary>
        /// 头像闪烁
        /// </summary>
        private void HeaderFlicker(int groupIndex,int headerIndex)
        {
            
            if(string.IsNullOrEmpty(sbFriends.Groups[groupIndex].Items[headerIndex].Text))
               tempText = sbFriends.Groups[groupIndex].Items[headerIndex].Text;

           if (_isFlickerText)
            {
                sbFriends.Groups[groupIndex].Items[headerIndex].Text = "";
                _isFlickerText = false;
            }
            else
            {
                sbFriends.Groups[groupIndex].Items[headerIndex].Text = tempText;
                _isFlickerText = true;
            }

        }
        /// <summary>
        /// 获取当前用户未读信息
        /// </summary>
        private void GetMessages()
        {
            _MsgList=Messages.GetMyNotReadMessages(AppSetter.CurrentUser.Id);
            if (_MsgList.Count > 0)
            {
                FlickerMessageTip();
                 //HeaderFlicker(0,2);  
            }
            else if (btnToolMessage.Image == null)
            {
                btnToolMessage.Image = _picMsgTip;
            }

        }

        /// <summary>
        /// 闪烁消息提示
        /// </summary>
        private void FlickerMessageTip()
        {
            if (_isFlickerMsgTip)
            {
                btnToolMessage.Image = _picMsgTip;
                _isFlickerMsgTip = false;
            }
            else
            {
                btnToolMessage.Image = null;
                _isFlickerMsgTip = true;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            GetMessages();
        }

        private void btnToolMessage_Click(object sender, EventArgs e)
        {
            if (_MsgList.Count > 0)
            { 
                MessagesInfo objMsg=_MsgList[0];
                int iMsgType=objMsg.MessageType.Id;
                if(iMsgType==(int)EnumMessageType.ChatMessage)
                {
                    frmChat frmchat =new frmChat();
                    frmchat.ReceiveMessage = objMsg;
                    frmchat.Show();
                }
                else if(iMsgType==(int)EnumMessageType.RequestAddFriend)
                {
                    frmMessage frmMsg=new frmMessage();
                    frmMsg.SysMessage = _MsgList[0];
                    frmMsg.ShowDialog();
                }
                else
                {
                    frmMessage frmMsg2 = new frmMessage();
                    frmMsg2.SysMessage = _MsgList[0];
                    frmMsg2.ShowDialog();

                    if (iMsgType == (int)EnumMessageType.ReturnAgreeAdd)
                    {
                        BindMyFriends();

                    }
                   
                }
            }
        }

        private void btnToolRefresh_Click(object sender, EventArgs e)
        {
            BindMyFriends();
        }

        private void cmsSmallHeader_Click(object sender, EventArgs e)
        {
            if (sbFriends.View != SbView.SmallIcon)
            {
                sbFriends.View = SbView.SmallIcon;
                cmsSmallHeader.Text = "大头像";
            }
            else
            {
                sbFriends.View = SbView.LargeIcon;
                cmsSmallHeader.Text = "小头像";
            
            }
        }

   

        private void cmsDeleteFriend_Click(object sender, EventArgs e)
        {

            if (sbFriends.SeletedItem != null)
            {

                //从陌生人里删除
                if (sbFriends.SeletedItem.Parent.Tag.ToString() == "1")
                {
                    sbFriends.Groups[0].Items.Remove(sbFriends.SeletedItem);
                }
                else
                {
                    //从服务器里删除
                    UsersInfo tempUser = ((UsersInfo)sbFriends.SeletedItem.Tag);
                    if (DialogResult.Yes == MessageBox.Show("您真的要删除[" + tempUser.NickName + "]好友吗?", "提示", MessageBoxButtons.YesNo))
                    {
                        Friends.DeleteFriend(AppSetter.CurrentUser.Id, tempUser.Id);
                        BindMyFriends();
                        MoveToStrangeList(tempUser);
                    }

                }
            }

            
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -