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

📄 f_client.cs

📁 01_家庭视频监控系统 02_企业短信群发系统 03_企业电话客服系统 04_卡拉OK点歌系统 05_企业QQ系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
                                                        (treeView1.Nodes[i].Tag as ClassUserInfo).UserName);
                                                (msgform as F_Chat).Rich_Out.AppendText("  " + DateTime.Now.ToString());
                                                (msgform as F_Chat).Rich_Out.AppendText("\r\n");
                                                (msgform as F_Chat).Rich_Out.SelectedRtf = rtf;
                                                msgform.Text = "与" + (treeView1.Nodes[i].Tag as ClassUserInfo).UserName + "对话";
                                                msgform.Show();//显示发送消息窗体
                                            }
                                        }
                                    }
                                    break;
                                }
                            case SendState.Start://大容量开始消息
                                {
                                    FileStream fs = null;
                                    try
                                    {
                                        string FileName = "c:\\" + msgid + ".msg";//设置文件接收路径
                                        fs = File.Create(FileName);//创建文件
                                        fs.Write(msg.Data, 0, msg.Data.Length);//向文件中写入接收物信息
                                    }
                                    finally
                                    {
                                        fs.Close();//关闭文件
                                    }
                                    break;
                                }
                            case SendState.Sending://大容量消息发送中
                                {
                                    FileStream fs = null;
                                    try
                                    {
                                        string FileName = "c:\\" + msgid + ".msg";//设置文件接收路径
                                        fs = File.OpenWrite(FileName);//打开当前要写入的文件
                                        fs.Seek(0, SeekOrigin.End);//将该流的当前位值设为0
                                        fs.Write(msg.Data, 0, msg.Data.Length);//向文件中写入当前接收的信息
                                    }
                                    finally
                                    {
                                        fs.Close();
                                    }
                                    break;
                                }
                            case SendState.End://大容量消息结束
                                {
                                    FileStream fs = null;
                                    try
                                    {
                                        string FileName = "c:\\" + msgid + ".msg";//文件所在路径
                                        fs = File.OpenRead(FileName);//打开现有文件,以便进行读取
                                        //fs.Seek(0, SeekOrigin.End);
                                        //fs.Write(msg.Data, 0, msg.Data.Length);

                                        byte[] fsdata = new byte[Convert.ToInt32(fs.Length)];//将读取的信息存入到二进制流中
                                        //fs.Seek(0, SeekOrigin.Begin);
                                        fs.Read(fsdata,0,Convert.ToInt32(fs.Length));//将读取的流写入到缓冲区中
                                        String rtf = Encoding.Unicode.GetString(fsdata);//将流转换成字符串
                                        Form msgform = null;
                                        for (int i = 0; i < treeView1.Nodes.Count; i++)
                                        {
                                            if ((treeView1.Nodes[i].Tag as ClassUserInfo).UserID == sid)
                                            {
                                                msgform = FindForm(treeView1.Nodes[i]);
                                                if (msgform != null)
                                                {
                                                    (msgform as F_Chat).Rich_Out.SelectionStart = 0;
                                                    (msgform as F_Chat).Rich_Out.AppendText(
                                                            (treeView1.Nodes[i].Tag as ClassUserInfo).UserName);
                                                    (msgform as F_Chat).Rich_Out.AppendText("  " + DateTime.Now.ToString());
                                                    (msgform as F_Chat).Rich_Out.AppendText("\r\n");
                                                    (msgform as F_Chat).Rich_Out.SelectedRtf = rtf;
                                                    msgform.Text = "与" + (treeView1.Nodes[i].Tag as ClassUserInfo).UserName + "对话";
                                                    msgform.Activate();
                                                }
                                                else
                                                {
                                                    msgform = new F_Chat();
                                                    msgform.Tag = treeView1.Nodes[i];
                                                    (msgform as F_Chat).udpsocket = udpSocket1;
                                                    FormList.add(msgform);
                                                    (msgform as F_Chat).FormList = FormList;
                                                    (msgform as F_Chat).Rich_Out.SelectionStart = 0;
                                                    (msgform as F_Chat).Rich_Out.AppendText(
                                                            (treeView1.Nodes[i].Tag as ClassUserInfo).UserName);
                                                    (msgform as F_Chat).Rich_Out.AppendText("  " + DateTime.Now.ToString());
                                                    (msgform as F_Chat).Rich_Out.AppendText("\r\n");
                                                    (msgform as F_Chat).Rich_Out.SelectedRtf = rtf;
                                                    msgform.Text = "与" + (treeView1.Nodes[i].Tag as ClassUserInfo).UserName + "对话";
                                                    msgform.Show();
                                                }
                                            }
                                        }
                                    }
                                    finally
                                    {
                                        fs.Close();

                                    }
                                    break;
                                }

                        }
                        break;
                    }
                case SendKind.SendFile:
                    {
                        break;
                    }
            }

        }

        private void F_Client_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (udpSocket1.Active)
            {
                ClassMsg msg = new ClassMsg();
                msg.sendKind = SendKind.SendCommand;
                msg.msgCommand = MsgCommand.Close;
                msg.SID = Publec_Class.UserID;
                msg.Data = Encoding.Unicode.GetBytes("");
                udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), Convert.ToInt32(Publec_Class.ServerPort),
                            new ClassSerializers().SerializeBinary(msg).ToArray());
                udpSocket1.Active = false;
            }
        }

        private void treeView1_DoubleClick(object sender, EventArgs e)
        {
            if (treeView1.SelectedNode != null)
            {
                if (FindForm(treeView1.SelectedNode) == null)
                {
                    F_Chat msgform = new F_Chat();
                    msgform.Tag = treeView1.SelectedNode;
                    msgform.udpsocket = udpSocket1;
                    FormList.add(msgform);
                    msgform.FormList = FormList;
                    msgform.Text = "与" + (treeView1.SelectedNode.Tag as ClassUserInfo).UserName + "对话";
                    msgform.Show();
                }
            }
        }

        private Form FindForm(TreeNode Node)
        {
            for (int i = 0; i < FormList.Count; i++)
            {
                if ((TreeNode)FormList[i].Tag == Node)
                    return FormList[i];
            }
            return null;
        }

        private void UpdateState(byte[] Data, System.Net.IPAddress Ip, int Port)
        {
            ClassMsg msg = (ClassMsg)new ClassSerializers().DeSerializeBinary(new MemoryStream(Data));
            string sid = msg.SID;//发送方用户ID
            for (int i = 0; i < treeView1.Nodes.Count; i++)
            {
                if ((treeView1.Nodes[i].Tag as ClassUserInfo).UserID == sid)
                {
                    if (msg.msgID == "Up")
                    {
                        treeView1.Nodes[i].ImageIndex = 1;
                        treeView1.Nodes[i].SelectedImageIndex = 1;
                    }
                    else if (msg.msgID == "Down")
                    {
                        treeView1.Nodes[i].ImageIndex = 0;
                        treeView1.Nodes[i].SelectedImageIndex = 0;
                    }
                    break;
                }
            }

        }

    }
}

⌨️ 快捷键说明

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