📄 f_client.cs
字号:
(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 + -