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

📄 groupchat.cs

📁 一个用C#编写的能实现即时通讯的工具
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using agsXMPP;
using agsXMPP.protocol.client;

namespace client
{
    public partial class groupChat : Form
    {
        public Jid roomjid;
        private XmppClientConnection con;

        public groupChat(Jid jid, XmppClientConnection con)
        {
            InitializeComponent();
            this.roomjid = jid;
            this.con = con;
            this.Text = "会议名称:" + jid.User;
        }

        private void groupChat_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult.OK == MessageBox.Show("真的要关闭会议室?", "注意!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning))
            {
                e.Cancel = false;
                mainForm.Isgroupchat = false;
                mainForm.Islogingroupchat = false;

                //发送退出会议消息给会议中的人
                Presence pre = new Presence();
                pre.Type = PresenceType.unsubscribe;
                pre.To = roomjid;
                con.Send(pre);
            }
            else
            {
                e.Cancel = true;
            }
        }

        public void meetingPresence(object sender, Presence pres)
        {
            //添加登入用户
            if (pres.Type == PresenceType.subscribe)
            {
                if (pres.From.User == this.roomjid.Resource)
                {
                    listView_userList.Items.Add(pres.From.User, 0).Group = listView_userList.Groups[0];
                }
                else
                {
                    listView_userList.Items.Add(pres.From.User, 0).Group = listView_userList.Groups[1];
                }
            }
            //删除退出用户
            if (pres.Type == PresenceType.unsubscribe)
            {
                for (int i = 0; i < listView_userList.Items.Count; i++)
                {
                    if (listView_userList.Items[i].Text == pres.From.User)
                    {
                        listView_userList.Items.RemoveAt(i);
                        break;
                    }
                }
            }
        }

        public void meetingOnMessage(object sender, agsXMPP.protocol.client.Message msg)
        {
            rtb_recv.AppendText(msg.From.User + "说:" + msg.Body + "\r\n\r\n");
        }

        private void btn_send_Click(object sender, EventArgs e)
        {
            agsXMPP.protocol.client.Message msg=new agsXMPP.protocol.client.Message();
            msg.Type = MessageType.groupchat;
            msg.To = roomjid;
            msg.Body = rtb_send.Text;
            con.Send(msg);

            rtb_send.Text = "";
        }

        private void rtb_recv_TextChanged(object sender, EventArgs e)
        {
            rtb_recv.ScrollToCaret();
        }

        private void rtb_send_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control)
            {
                if (e.KeyValue == 13)
                {
                    e.Handled = true;
                    btn_send_Click(this, null);
                }
            }
        }
    }
}

⌨️ 快捷键说明

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