怎么用C#脚本实现QQ聊天窗口

怎么用C#脚本实现QQ聊天窗口

本篇内容介绍了“怎么用C#脚本实现QQ聊天窗口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

分析

  • 需要两个TextBox,一个用于显示消息,一个用于编辑消息

    怎么用C#脚本实现QQ聊天窗口

  • 需要四个按钮,分别控制关闭程序,清空正在编辑的消息,发送消息,抖动

原理

1、在TextBox2中编辑消息并发送,在TextBox1中显示所发送的消息的同时使TextBox2中的消息清空
2、发送的第一条消息TextBox1先保存并显示,发送第二条消息时将TextBox1事先的消息先打印出来接着显示第二条消息
3、抖动原理:使窗口的left以及top发生变化(围绕窗体左上角为坐标原点考虑)加上Thread线程和for循环从而实现窗口抖动效果

程序中用到的重要属性

ReadOnly属性:设置文本为只读(true)textBox1.ReadOnly=true;

TabIndex属性:设置光标默认出现在哪里(0)textBox1.TabIndex=0;

Multiline属性:设置文本框可多行输入textBox1.Multiline=true;

Datetime:获取当前时间

“\r\n” 换行

AcceptButton属性:获取或设置当用户按Enter键时所单击的窗体上的按钮this.AcceptButton = button2;

Thread类:创建和控制线程Thread.Sleep(10);//设置执行完上一步停留时间还需要创建命名空间using System.Threading;

Trim方法:textBox2.Text.Trim()=="")//Trim:移除当前textBox2对象位置前后的空白字符

具体代码如下:

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Threading;//设置多线程namespaceTest_QQ_chat_windows{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){//设置聊天窗口居中this.Left=Screen.PrimaryScreen.WorkingArea.Width/2-this.Width/2;this.Top=Screen.PrimaryScreen.WorkingArea.Height/2-this.Height/2;//聊天窗口命名this.Text="和Know正在聊天";this.BackgroundImage=Image.FromFile("../../img/timg.jpg");//设置窗体背景图this.BackgroundImageLayout=ImageLayout.Stretch;//设置窗体背景图拉伸//textBox1设置只读textBox1.ReadOnly=true;//设置发送按钮可以用Enter键来触发this.AcceptButton=button2;this.Opacity=0.8;//设置窗体透明度为0.2textBox1.BackColor=Color.DeepSkyBlue;textBox2.BackColor=Color.DeepPink;}privatevoidbutton1_Click(objectsender,EventArgse){this.BackColor=Color.DeepSkyBlue;//设置窗体背景颜色textBox1.Text+="深夜食堂(36522224)"+DateTime.Now+"\r\n"+"\r\n"+"您发送了一个窗口抖动"+"\r\n"+"\r\n";textBox2.Text="";//设置发送内容后textBox2中无内容//窗口抖动intx=this.Left;inty=this.Top;for(inti=0;i<=3;i++)//设置抖动次数{this.Location=newPoint(x-3,y);Thread.Sleep(10);//设置执行完上一步停留时间this.Location=newPoint(x-3,y-3);Thread.Sleep(10);this.Location=newPoint(x,y-3);Thread.Sleep(10);this.Location=newPoint(x+3,y-3);Thread.Sleep(10);this.Location=newPoint(x+3,y);Thread.Sleep(10);this.Location=newPoint(x+3,y+3);Thread.Sleep(10);this.Location=newPoint(x,y+3);Thread.Sleep(10);this.Location=newPoint(x-3,y+3);Thread.Sleep(10);this.Location=newPoint(x-3,y);Thread.Sleep(10);this.Location=newPoint(x,y);}}privatevoidbutton2_Click(objectsender,EventArgse){//消息发送//判断textbox2中有无内容if(textBox2.Text==""||textBox2.Text.Trim()=="")//Trim:移除当前textBox2对象位置前后的空白字符){MessageBox.Show("输入不能为空值,请重新输入","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}else{textBox1.Text+="深夜食堂(36522224)"+DateTime.Now+"\r\n"+"\r\n"+textBox2.Text+"\r\n"+"\r\n";textBox2.Text="";//设置发送内容后textBox2中无内容}}privatevoidbutton3_Click(objectsender,EventArgse){this.Close();}privatevoidbutton4_Click(objectsender,EventArgse){textBox2.Text="";}privatevoidtextBox1_TextChanged(objectsender,EventArgse){//设置起始点在最后消息处this.textBox1.SelectionStart=this.textBox1.Text.Length;//内容滚动到最后消息处this.textBox1.ScrollToCaret();}}}

“怎么用C#脚本实现QQ聊天窗口”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

发布于 2022-02-11 22:43:38
收藏
分享
海报
0 条评论
28
上一篇:怎么用Unity命令行打包WebGL 下一篇:php如何去掉后两位数
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码