private void HandleFriendMoved(ParseData pd)
        {
            DataReader dr       = new DataReader(pd.Data);
            byte       index    = dr.ReadByte();
            byte       newIndex = dr.ReadByte();

            FriendUser friend = m_friendsList[index];

            friend.Index = newIndex;
            m_friendsList.Insert(newIndex, friend);

            if (newIndex < index)
            {
                for (int i = newIndex + 1; i <= index; i++)
                {
                    m_friendsList[i].Index += 1;
                }
            }
            else if (newIndex > index)
            {
                for (int i = index; i < newIndex; i++)
                {
                    m_friendsList[i].Index -= 1;
                }
            }

            FriendMovedEventArgs args = new FriendMovedEventArgs(friend, newIndex)
            {
                EventData = pd
            };

            OnFriendMoved(args);
        }
示例#2
0
 void Client_FriendMoved(object sender, FriendMovedEventArgs e)
 {
     if (__friendMoved != null)
     {
         __friendMoved.Call(_host.ClientHost, ConvObj(e));
     }
 }
示例#3
0
        void client_FriendMoved(object sender, FriendMovedEventArgs e)
        {
            ThreadStart ts = delegate
            {
                this.lbFriends.Items.Remove(e.Friend);
                this.lbFriends.Items.Insert(e.NewIndex, e.Friend);
            };

            if (InvokeRequired)
            {
                BeginInvoke(ts);
            }
            else
            {
                ts();
            }
        }