1. 程式人生 > >2017-5-5 QQ面板 (用戶控件、timer控件,輪詢實現聊天功能)

2017-5-5 QQ面板 (用戶控件、timer控件,輪詢實現聊天功能)

賬號 reat foreach friend ext 分享 label nec back

技術分享

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using 用戶控件練習___QQ面板.App_code;

namespace 用戶控件練習___QQ面板
{
    public partial class Form1 : Form
    {
        
public Form1(Form2 f2,qquser u) { InitializeComponent(); //綁定當前登錄用戶的信息 pictureBox1.BackgroundImage = Image.FromFile(u.Qqpic); label1.Text = u.Qqname; label2.Text = u.Qqsign; //綁定好友信息 qqfriend fri= new qqfrienddata().selectfriend(u.Qqnumber);
if(fri!=null) { string[] strs = fri.Qqfriends.Split(,); foreach(string s in strs) { qquser u1 = new qquserdata().selectuser(s); if(u1!=null) { friend f = new
friend(u,u1); f.pic1.BackgroundImage = Image.FromFile(u1.Qqpic); f.la1.Text = u1.Qqname; f.la2.Text = u1.Qqsign; flowLayoutPanel1.Controls.Add(f); } } } label3.Text = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"); } //private void button1_Click(object sender, EventArgs e) //{ // friend f = new friend(); // f.pic1.BackgroundImage = Image.FromFile("img/1.jpg.jpg"); // f.la1.Text = "姚慧旭"; // f.la2.Text = "套路得人心"; // flowLayoutPanel1.Controls.Add(f); //} private void timer1_Tick(object sender, EventArgs e) { label3.Text = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"); } private void Form1_Load(object sender, EventArgs e) { } } }

技術分享

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using 用戶控件練習___QQ面板.App_code;

namespace 用戶控件練習___QQ面板
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            qquser u=new qquserdata().selectuser(textBox1.Text.Trim(),textBox2.Text);
            if(u==null)
            {
                label1.Text = "賬號或密碼錯誤!";
                return;
            }
            if (u.Qqstate)
            {
                Form1 f1 = new Form1(this,u);
                f1.Show();
                this.Hide();

            }
            else 
            {
                label1.Text = "賬號未激活!";
            }
        }
    }
}

技術分享

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using 用戶控件練習___QQ面板.App_code;

namespace 用戶控件練習___QQ面板
{
    public partial class Form3 : Form
    {
        qquser ME = null;
        qquser TO = null;
        friend F = null;
        public Form3(qquser me,qquser to,friend f)
        {
            InitializeComponent();
            this.Text = me.Qqname + "" + to.Qqname + "的對話";
            ME = me;
            TO = to;
            F = f;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            qqchat cht = new qqchat();
            cht.From = ME.Qqnumber;
            cht.To = TO.Qqnumber;
            cht.Content = richTextBox2.Text;
            cht.Time = DateTime.Now;
            cht.State = false;

            new qqchatdata().insertchat(cht);
            richTextBox1.Text+=ME.Qqname+""+TO.Qqname+"說:("+cht.Time.ToString("HH:mm:ss")+")\r"+richTextBox2.Text+"\r";
            richTextBox2.Text = "";
        }

        private void timer1_Tick(object sender, EventArgs e)
        {

          qqchat cht= new qqchatdata().select(TO.Qqnumber, ME.Qqnumber);
            if(cht!=null)
            {
                richTextBox1.Text += cht.From + "" + cht.To + "說:(" + cht.Time.ToString("HH:mm:ss") + ")\r"+cht.Content+"\r";

                new qqchatdata().updatestate(cht.Ids);
            }

        }

        private void Form3_FormClosing(object sender, FormClosingEventArgs e)
        {
            F.ff3 = null;
        }
    }
}

技術分享

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using 用戶控件練習___QQ面板.App_code;

namespace 用戶控件練習___QQ面板
{
    public partial class friend : UserControl
    {
        qquser ME = null;
        qquser TO = null;
        public friend(qquser me,qquser to)
        {
            InitializeComponent();
            ME = me;
            TO = to;
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void friend_MouseEnter(object sender, EventArgs e)
        {
            this.BackColor = Color.Red;

        }

        private void friend_MouseLeave(object sender, EventArgs e)
        {
            this.BackColor = Color.Transparent;
        }

      public Form3 ff3 = null;
        private void friend_DoubleClick(object sender, EventArgs e)
        {
            if (ff3 == null)
            {
                Form3 f3 = new Form3(ME, TO,this);
                f3.Show();
                ff3 = f3;
            }
            else 
            {
                ff3.WindowState = FormWindowState.Normal;
                ff3.Focus();
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (new qqchatdata().select(TO.Qqnumber, ME.Qqnumber) != null)
            {
                timer2.Enabled = true;
            }
            else 
            {
                timer2.Enabled = false;
            }
        }
        bool top = false;
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (top)
            {
                this.pic1.Location = new Point(9, 13);
                top = false;
            }
            else 
            {
                this.pic1.Location = new Point(15, 19);
                top = true;
            }
        }
    }
}

技術分享

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
    public class qqchat
    {
        private int _ids;

        public int Ids
        {
            get { return _ids; }
            set { _ids = value; }
        }
        private string _from;

        public string From
        {
            get { return _from; }
            set { _from = value; }
        }
        private string _to;

        public string To
        {
            get { return _to; }
            set { _to = value; }
        }
        private string _content;

        public string Content
        {
            get { return _content; }
            set { _content = value; }
        }
        private DateTime _time;

        public DateTime Time
        {
            get { return _time; }
            set { _time = value; }
        }
        private bool _state;

        public bool State
        {
            get { return _state; }
            set { _state = value; }
        }

    }
}
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
     public class qqchatdata
    {
         SqlConnection conn=null;
         SqlCommand cmd=null;
         public qqchatdata() 
         {
             conn = new SqlConnection("server=.;database=master;user=sa;pwd=123");
             cmd = conn.CreateCommand();
         }
         public void insertchat(qqchat ct)
         {
             cmd.CommandText = "insert into qqchat values (@a,@b,@c,@d,@e)";
             cmd.Parameters.Clear();
             cmd.Parameters.AddWithValue("@a",ct.From);
             cmd.Parameters.AddWithValue("@b",ct.To);
             cmd.Parameters.AddWithValue("@c",ct.Content);
             cmd.Parameters.AddWithValue("@d",ct.Time);
             cmd.Parameters.AddWithValue("@e",ct.State);

             conn.Open();
             cmd.ExecuteNonQuery();
             conn.Close();
         }

         public qqchat select(string from,string to)
         {
             qqchat ct = null;
             cmd.CommandText = "select * from qqchat where [from][email protected] and [to][email protected] and [state]=0";
             cmd.Parameters.Clear();
             cmd.Parameters.AddWithValue("@a",from);
             cmd.Parameters.AddWithValue("@b",to);
             conn.Open();
             SqlDataReader dr= cmd.ExecuteReader();
             if(dr.HasRows)
             {
                 ct = new qqchat();
                 dr.Read();
                 ct.Ids = Convert.ToInt32(dr[0]);
                 ct.From = dr[1].ToString();
                 ct.To = dr[2].ToString();
                 ct.Content=dr[3].ToString();
                 ct.Time = Convert.ToDateTime(dr[4]);
                 ct.State = Convert.ToBoolean(dr[5]);
             }
             conn.Close();
             return ct;
         }


         public void updatestate(int ids)
         {
             cmd.CommandText = "update qqchat set state=1 where [email protected]";
             cmd.Parameters.Clear();
             cmd.Parameters.AddWithValue("@a",ids);
             conn.Open();
             cmd.ExecuteNonQuery();
             conn.Close();
         }

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
   public class qqfriend
    {
        private string _qqnumber;

        public string Qqnumber
        {
            get { return _qqnumber; }
            set { _qqnumber = value; }
        }
        private string _qqfriends;

        public string Qqfriends
        {
            get { return _qqfriends; }
            set { _qqfriends = value; }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
     public class qqfrienddata
    {
         SqlConnection conn=null;
         SqlCommand cmd=null;

         public qqfrienddata() 
         {
             conn = new SqlConnection("server=.;database=master;user=sa;pwd=123");
             cmd = conn.CreateCommand();
         }
         public qqfriend selectfriend(string number)
         {
             qqfriend f = null;
             cmd.CommandText = "select * from qqfriends where [email protected] ";
             cmd.Parameters.Clear();
             cmd.Parameters.AddWithValue("@a",number);
             conn.Open();
             SqlDataReader dr = cmd.ExecuteReader();
             if(dr.HasRows)
             {
                 f = new qqfriend();
                 dr.Read();
                 f.Qqnumber = dr[1].ToString();
                 f.Qqfriends = dr[2].ToString();
             }

             conn.Close();
             return f;

         }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
    public class qquser
    {
        private string _qqnumber;

        public string Qqnumber
        {
            get { return _qqnumber; }
            set { _qqnumber = value; }
        }
        private string _qqpwd;

        public string Qqpwd
        {
            get { return _qqpwd; }
            set { _qqpwd = value; }
        }
        private string _qqname;

        public string Qqname
        {
            get { return _qqname; }
            set { _qqname = value; }
        }
        private string _qqsign;

        public string Qqsign
        {
            get { return _qqsign; }
            set { _qqsign = value; }
        }
        private string _qqpic;

        public string Qqpic
        {
            get { return _qqpic; }
            set { _qqpic = value; }
        }
        private bool _qqstate;

        public bool Qqstate
        {
            get { return _qqstate; }
            set { _qqstate = value; }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用戶控件練習___QQ面板.App_code
{
    public class qquserdata
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;

        public qquserdata() 
        {
            conn = new SqlConnection("server=.;database=master;user=sa;pwd=123");
            cmd = conn.CreateCommand();
        }
        public qquser selectuser(string number,string pwd)
        {
            qquser u = null;
            cmd.CommandText = "select * from qquser where [email protected] and [email protected]";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a",number);
            cmd.Parameters.AddWithValue("@b",pwd);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if(dr.HasRows)
            {
                u = new qquser();
                dr.Read();
                u.Qqnumber = dr[1].ToString();
                u.Qqpwd = dr[2].ToString();
                u.Qqname = dr[3].ToString();
                u.Qqsign = dr[4].ToString();
                u.Qqpic = dr[5].ToString();
                u.Qqstate = Convert.ToBoolean(dr[6]);
            }
            conn.Close();



            return u;
        }


        public qquser selectuser(string number)
        {
            qquser u = null;
            cmd.CommandText = "select * from qquser where [email protected] ";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", number);
            
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                u = new qquser();
                dr.Read();
                u.Qqnumber = dr[1].ToString();
                u.Qqpwd = dr[2].ToString();
                u.Qqname = dr[3].ToString();
                u.Qqsign = dr[4].ToString();
                u.Qqpic = dr[5].ToString();
                u.Qqstate = Convert.ToBoolean(dr[6]);
            }
            conn.Close();



            return u;
        }
    }
}

2017-5-5 QQ面板 (用戶控件、timer控件,輪詢實現聊天功能)