📄 mainform.cs
字号:
break;
}
}
if (check)
{
frmchat frm = new frmchat(msg.From.User, con);
frm.Show();
onlinechatfrm.onlinefrm.Add(frm);
frm.rtb_recv.SelectionFont = new Font(frm.rtb_recv.SelectionFont.FontFamily, 9);
frm.rtb_recv.SelectionIndent = 5;
frm.rtb_recv.SelectionColor = Color.Blue;
frm.rtb_recv.AppendText(msg.From.User + " " + System.DateTime.Now.Hour.ToString() + ":" + System.DateTime.Now.Minute.ToString() + ":" + System.DateTime.Now.Second.ToString() + "\r\n");
frm.rtb_recv.SelectionFont = new Font(frm.rtb_recv.SelectionFont.FontFamily, 12);
frm.rtb_recv.SelectionIndent = 20;
frm.rtb_recv.SelectionColor = Color.Black;
frm.rtb_recv.AppendText(msg.Body + "\r\n");
}
}
//处理组聊消息
if (msg.Type == MessageType.groupchat)
{
if (Iscreatergroupchat)
{
onlinegroupchatfrm.creatergroupchatfrm.meetingOnMessage(this, msg);
}
else
{
onlinegroupchatfrm.groupchatfrm.meetingOnMessage(this, msg);
}
}
}
private void con_OnPresence(object sender, Presence pres)
{
if (InvokeRequired)
{
BeginInvoke(new OnPresenceDelegate(con_OnPresence), new object[] { sender, pres });
return;
}
//用户登入消息
if (pres.Show == ShowType.chat)
{
foreach (TreeNode node in treeView1.Nodes)
{
foreach (TreeNode childnode in node.Nodes)
{
if (childnode.Text == pres.From.User)
{
if (childnode.ImageIndex > 100)
{
childnode.ImageIndex -= 100;
childnode.SelectedImageIndex -= 100;
}
break;
}
}
}
}
//用户下线消息
else if (pres.Type == PresenceType.unavailable)
{
foreach (TreeNode node in treeView1.Nodes)
{
foreach (TreeNode childnode in node.Nodes)
{
if (childnode.Text == pres.From.User)
{
if (childnode.ImageIndex <= 100)
{
childnode.ImageIndex += 100;
childnode.SelectedImageIndex += 100;
}
break;
}
}
}
}
//会议创建消息
else if (pres.Type == PresenceType.probe)
{
string[] str={pres.From.User,pres.From.Resource};
ListViewItem item = new ListViewItem(str, 1);
listView_onlineroom.Items.Add(item);
}
//会议取消消息
else if (pres.Type == PresenceType.invisible)
{
for (int i = 0; i < listView_onlineroom.Items.Count; i++)
{
if (listView_onlineroom.Items[i].Text == pres.From.User && listView_onlineroom.Items[i].SubItems[1].Text == pres.From.Resource)
{
listView_onlineroom.Items.RemoveAt(i);
break;
}
}
if (Islogingroupchat)
{
if (onlinegroupchatfrm.groupchatfrm != null)
{
if (onlinegroupchatfrm.groupchatfrm.roomjid.Equals(pres.From))
{
MessageBox.Show("会议被创建者关闭,会议窗口将退出!", "注意");
onlinegroupchatfrm.groupchatfrm.Dispose();
Isgroupchat = false;
}
}
}
}
//用户登入会议消息
else if (pres.Type == PresenceType.subscribe)
{
if (Iscreatergroupchat)
{
onlinegroupchatfrm.creatergroupchatfrm.meetingPresence(this, pres);
}
else
{
onlinegroupchatfrm.groupchatfrm.meetingPresence(this,pres);
}
}
//用户退出会议消息
else if (pres.Type == PresenceType.unsubscribe)
{
if (Iscreatergroupchat)
{
onlinegroupchatfrm.creatergroupchatfrm.meetingPresence(this, pres);
}
else
{
onlinegroupchatfrm.groupchatfrm.meetingPresence(this, pres);
}
}
}
private void createMeeting(object sender, EventArgs e)
{
if (!Isgroupchat)
{
createmeeting frm = new createmeeting();
if (frm.ShowDialog() == DialogResult.OK)
{
Isgroupchat = true;
Iscreatergroupchat = true;
Browse browse = new Browse();
browse.Value = room.roompwd;
IQ iq = new IQ();
iq.AddChild(browse);
iq.Type = IqType.set;
iq.To = new Jid(room.roomname, "localhost", con.Username);
con.Send(iq);
creatergroupChat creatergroupfrm = new creatergroupChat(iq.To, con);
onlinegroupchatfrm.creatergroupchatfrm = creatergroupfrm;
creatergroupfrm.Show();
Presence pre = new Presence();
pre.From = new Jid(con.Username, "localhost", "Resource");
pre.Type = PresenceType.subscribe;
onlinegroupchatfrm.creatergroupchatfrm.meetingPresence(this,pre);
}
}
else
{
MessageBox.Show("你已经身在一个会议当中,不能建立会议室!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void listView_onlineroom_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (!Isgroupchat)
{
logingroupchat frm = new logingroupchat();
if (frm.ShowDialog() == DialogResult.OK)
{
Isgroupchat = true;
Islogingroupchat = true;
Browse browse = new Browse();
browse.Value = loginroom.roompwd;
IQ iq = new IQ();
iq.AddChild(browse);
iq.Type = IqType.get;
iq.Id = "loginmeeting";
iq.To = new Jid(listView_onlineroom.SelectedItems[0].Text, "localhost", listView_onlineroom.SelectedItems[0].SubItems[1].Text);
con.Send(iq);
}
}
else
{
MessageBox.Show("你已经身在一个会议当中,不能再加入会议室!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//鼠标双击子结点,初始化聊天窗口
private void treeView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
bool check = true;
TreeNode tn = this.treeView1.GetNodeAt(e.X, e.Y);
if (tn != null && tn.IsSelected && tn.Level != 0 && e.Button == MouseButtons.Left)
{
foreach (frmchat frm in onlinechatfrm.onlinefrm)
{
if (frm.name == tn.Text)
{
frm.Activate();
check = false;
break;
}
}
if (check)
{
frmchat frm = new frmchat(tn.Text, this.con);
onlinechatfrm.onlinefrm.Add(frm);
frm.Show();
}
}
}
private void treeView1_MouseClick(object sender, MouseEventArgs e)
{
TreeNode tn = this.treeView1.GetNodeAt(e.X, e.Y);
treeView1.SelectedNode = tn;
}
private void userInfo(object sender, EventArgs e)
{
/*agsXMPP.protocol.client.Message msg = new agsXMPP.protocol.client.Message();
Info userInfo = new Info();
userInfo.Name=treeView1.SelectedNode.Text;
msg.AddChild(userInfo);
con.Send(msg);
*/
IQ iq = new IQ();
Info userInfo = new Info();
userInfo.Name = treeView1.SelectedNode.Text;
iq.AddChild(userInfo);
iq.Id = "browse";
iq.Type = IqType.get;
con.Send(iq);
}
private void 修改个人资料ToolStripMenuItem_Click(object sender, EventArgs e)
{
IQ iq = new IQ();
Info userInfo = new Info();
userInfo.Name = con.Username;
iq.AddChild(userInfo);
iq.Id = "edit";
iq.Type = IqType.get;
con.Send(iq);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -