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

📄 onechat.cs

📁 C常用算法程序集,一部比较经典的程序算法合集
💻 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 + -