📄 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 listener mylistener;
private string myname = null;
private string hername = null;
public onechat(string storedata, listener mylistener, string myname, string hername)//接受信息
{
InitializeComponent();
txtContent.Text = storedata;
this.mylistener = mylistener;
this.myname = myname;
this.hername = hername;
this.Text = "和" + hername + "聊天中.......";
}
public onechat(string hername, listener mylistener, string myname, int i)
{
InitializeComponent();
this.mylistener = mylistener;
this.myname = myname;
this.hername = hername;
this.Text = "和" + hername + "聊天中.......";
}
void get_serverdata(string msg, string her) //接受到信息时,委托的事件
{
ThisOutDelegate del = delegate(string m, string hers)
{
txtContent.AppendText(m);
txtContent.ScrollToCaret();
};
while (!this.IsHandleCreated)//在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 及This.DialogResult
{
}
txtContent.Invoke(del, msg, her);
}
void get_herfiletip()
{
FileDelegateTip del = delegate(bool nan)
{
timer1.Enabled = nan;
btnfile.Text = "接受文件";
};
this.Invoke(del, true);
}
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)
{
this.mylistener.form2getserverdata = new ThisOutDelegate(get_serverdata);
mylistener.changeform2();
this.mylistener.acceptfile += new FileDelegate(get_herfiletip);
}
private void btnSend_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txtMessage.Text))
{
MessageBox.Show("请输入内容!");
txtMessage.Clear();
txtMessage.Focus();
return;
}
string mydisplay = myname + " " + System.DateTime.Now.ToString() + "\r" + txtMessage.Text + "\r";
string msg = hername + ":" + mydisplay;
commonmethod.sendtosevermessage(msg); //还得判断一下有没有异常
// txtContent.Text += mydisplay;
txtContent.AppendText(mydisplay);
txtContent.ScrollToCaret();//将流动条流到当前插入符号位置
txtMessage.Clear();
}
private void onechat_FormClosing(object sender, FormClosingEventArgs e)
{
mylistener.changeform1();
this.mylistener.acceptfile -= new FileDelegate(get_herfiletip);
}
private void btnClose_Click(object sender, EventArgs e) //可以册除
{
this.Close();
}
private void txtContent_TextChanged(object sender, EventArgs e)
{
//txtContent.Select(0, txtContent.Text.Length);
// txtContent.ScrollToCaret();
}
private void onechat_FormClosed(object sender, FormClosedEventArgs e)
{
}
private void btnfile_Click(object sender, EventArgs e)
{
Thread filethread;
string herip;
int herport;
timer1.Enabled = false;
commonmethod.getherip(hername, out herip, out herport);
if (btnfile.Text.Equals("传送文件"))
{
openFileDialog1.ShowDialog();
filesend filesend1 = new filesend(herip, herport,hername , openFileDialog1.FileName);
filethread =new Thread (new ThreadStart (filesend1.sendfile));
}
else
{
saveFileDialog1.ShowDialog();
filesend filesend1 = new filesend(herip, herport, hername, saveFileDialog1 .FileName);
filethread =new Thread (new ThreadStart (filesend1.get));
btnfile.Text = "传送文件";
btnfile.ForeColor = Color.Black;
}
filethread .IsBackground =true ;
filethread .Start ();
}
private void timer1_Tick(object sender, EventArgs e)
{
btnfile.Visible = true;
if (btnfile.ForeColor == Color.Red)
btnfile.ForeColor = Color.Black;
else
btnfile.ForeColor = Color.Red;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -