📄 onechat.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace mychat1
{
public partial class onechat : Form
{
private string userName;
private Talker talker;
private int i = 0;
public onechat(string hername,Talker talker,string ip,int port)//和别人连接
{
InitializeComponent();
this.Text = "和" + hername + "聊天中";
this.talker = talker;
Thread connected=new Thread (new ThreadStart (talker.ConnectByIp (ip ,port )));
connected.IsBackground = true;
connected.Start();
/* if (talker.ConnectByIp(ip, port))//连接
{
txtContent.Text +=
String.Format("System[{0}]:\r\n已成功连接至远程,等待对方接受..........\r\n", DateTime.Now);
}
else
{
MessageBox.Show("远程主机不存在,或者拒绝连接!");
}*/
talker.ClientLost += new ConnectionLostEventHandler(talker_ClientLost);
talker.ServerMessageReceived += new MessageReceivedEventHandler(talker_MessageReceived);
}
public onechat(Talker talker) //还得修改
{
this.i = 1;
InitializeComponent();
this.Text = "和 聊天中";
this.talker = talker;
talker.ClientLost += new ConnectionLostEventHandler(talker_ClientLost);
talker.MessageReceived += new MessageReceivedEventHandler(talker_MessageReceived);
}
void talker_ClientLost(string info) //对方断开连接
{
ConnectionLostEventHandler del = delegate(string information)
{
txtContent.Text += String.Format("System[{0}]:\r\n{1}\r\n", DateTime.Now, information);
};
txtContent.Invoke(del, info);
}
void talker_MessageReceived(string msg) //接受到信息时,委托的事件
{
MessageReceivedEventHandler del = delegate(string m)
{
txtContent.Text += m;
};
txtContent.Invoke(del, msg);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void onechat_Load(object sender, EventArgs e)
{
}
private void btnSend_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txtMessage.Text))
{
MessageBox.Show("请输入内容!");
txtMessage.Clear();
txtMessage.Focus();
return;
}
string msg=userName + System .DateTime .Now .ToString () + "说:" + txtMessage .Text ;
if (talker.SendMessage (msg,i))
{
txtContent.Text += msg.ToString();
txtMessage.Clear();
}
else
{
txtContent.Text += String.Format("System[{0}]:\r\n远程主机已断开连接\r\n", DateTime.Now);
}
}
private void onechat_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void btnClose_Click(object sender, EventArgs e) //可以册除
{
try
{
talker.SignOut();
this.Close();
}
catch
{
}
}
private void txtContent_TextChanged(object sender, EventArgs e)
{
txtContent.Select(0, txtContent.Text.Length);
txtContent.ScrollToCaret();
}
private void onechat_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
talker.SignOut();
talker.ClientLost -= new ConnectionLostEventHandler(talker_ClientLost);
if (talker .ServerMessageReceived !=null)
talker.ServerMessageReceived -= new MessageReceivedEventHandler(talker_MessageReceived);
if (talker .MessageReceived !=null) ;
talker.MessageReceived -=new MessageReceivedEventHandler (talker_MessageReceived );
this.talker = null;
this.Close();
}
catch
{
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -