Ejemplo n.º 1
0
 //界面添加用户
 private void AddUser(UserInfo mode)
 {
         PictureBox user = new PictureBox();
         user.Name = "user" + mode.Id.ToString();
         user.Tag = mode;
         user.Size = new Size(300, 120);
         if (intUserLeft < user.Width * 3 + intg * 2)
             intUserLeft += intg;
         else
         {
             intUserLeft = intg;
             intUserTop += intg + user.Height;
         }
         user.Location = new Point(intUserLeft, intUserTop);
         intUserLeft += 300;
         user.BackColor = mode.Id == m_UserId ? Color.DarkSeaGreen : Color.LightSteelBlue;
         user.Paint += new PaintEventHandler(user_Paint);
         user.MouseEnter += new EventHandler(user_MouseEnter);
         user.MouseLeave += new EventHandler(user_MouseLeave);
         user.DoubleClick += new EventHandler(user_DoubleClick);
         pan_users.Controls.Add(user);
         
   
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据ID获取用户对象(不能获取自己的)
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private UserInfo GetUserInfoByUserId(int id)
        {
            UserInfo mode = null;
            if (id == m_UserId)
            {
                mode = new UserInfo();
                mode.Id = id;
                mode.Name = m_UserName;
            }

            foreach (UserInfo u in users)
            {
                if (u.Id == id)
                {
                    mode = u;
                    break;
                }
            }          
            return mode;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 获取在线好友数据
 /// </summary>
  public void getOnlineFriendInfos()
  {
      users.Clear();
      InitUserPanl();
      UserInfo selfUserItem = new UserInfo();
      selfUserItem.Id = m_UserId;
      selfUserItem.Name = m_UserName;
      StringBuilder str = new StringBuilder();
      AnyChatCoreSDK.QueryUserState(selfUserItem.Id, AnyChatCoreSDK.BRAC_USERSTATE_INTERNETIP, str, 15);
      selfUserItem.Ip = str.ToString();
      AddUser(selfUserItem);
      int num=0;
      AnyChatCoreSDK.GetUserFriends(null,ref num);
      int[] friendIds = new int[num];
      AnyChatCoreSDK.GetUserFriends(friendIds, ref num);
      for (int i = 0; i < friendIds.Length;i++ )
      {
          int onlineStatus = 0;
          int friendId = friendIds[i];
          AnyChatCoreSDK.GetFriendStatus(friendId, ref onlineStatus);
          Log.SetLog("GetFriendStatus: " + "用户id:" + friendId + "在线状态:" + onlineStatus);
          if(onlineStatus==USER_OFFLINE)
          {
              continue;
          }
          UserInfo userItem = new UserInfo();
          StringBuilder friendInfo = new StringBuilder(30);
          int lenth = 30;
          userItem.Id = friendId;
          AnyChatCoreSDK.GetUserInfo(friendId, USERDATA_USERNAME, friendInfo, lenth);
          string userName = friendInfo.ToString();
          userItem.Name = friendInfo.ToString();
          AnyChatCoreSDK.GetUserInfo(friendId, USERDATA_USERADRESSIP, friendInfo, lenth);
          string userIp = friendInfo.ToString();
          userItem.Ip = friendInfo.ToString();
          bool ishave = false;
          foreach (UserInfo u in users)
          {
              if (u.Id == userItem.Id)
              {
                  ishave = true;
                  break;
              }
          }
          if (!ishave)
              users.Add(userItem);
          AddUser(userItem);
      }
  }
Ejemplo n.º 4
0
        //界面移除用户
        private void RemoveUser(UserInfo mode)
        {
           
                //移除用户
                foreach (Control c in pan_users.Controls)
                {
                    UserInfo u = c.Tag as UserInfo;
                    if (u.Id == mode.Id)
                    {
                        pan_users.Controls.Remove(c);
                        break;
                    }
                }


                //整理其他用户坐标
                intUserLeft = 0;
                intUserTop = 30;
                foreach (Control c in pan_users.Controls)
                {
                    if (intUserLeft < 300 * 3 + 30 * 2)
                        intUserLeft += intg;
                    else
                    {
                        intUserLeft = intg;
                        intUserTop += intg + 120;
                    }
                    c.Location = new Point(intUserLeft, intUserTop);
                    intUserLeft += 300;
                }
          
        }