C#實(shí)現(xiàn)簡(jiǎn)單的聊天窗體
本文實(shí)例為大家分享了C#實(shí)現(xiàn)簡(jiǎn)單的聊天窗體的具體代碼,供大家參考,具體內(nèi)容如下
一、要使用(學(xué)習(xí))到的知識(shí)點(diǎn)
1、textBox控件
(1)功能:允許用戶(hù)輸入文本,并提供多行編輯和密碼字符掩碼功能
(2)它右什么屬性?
①M(fèi)ultiline
表示獲取或設(shè)置一個(gè)值,該值指示這是否為多行textBox控件
textBox2.Multiline = true;//意思就是將textbox2設(shè)置為可以多行顯示
②TabIndex
表示獲取或設(shè)置控件在其容器內(nèi)的Tab鍵順序
textBox2.TabIndex = 0;//將光標(biāo)定位到 textBox2框中
③Text
表示獲取或設(shè)置與此控件關(guān)聯(lián)的文本
textBox2.Text = "名字";//設(shè)置textBox顯示的文本
2、事件
①KeyDown表示在首次按下某個(gè)鍵時(shí)發(fā)生
private void textBox2_KeyDown(object sender, KeyEventArgs e)//將KeyDown事件添加到textBox2中
②e.KeyCode表示獲取鍵盤(pán)代碼
e.KeyCode == Keys.Enter//按下鍵盤(pán)上的Enter時(shí)就執(zhí)行
③AcceptButton表示獲取或設(shè)置用戶(hù)按下Enter鍵所單擊窗體上的按鈕
this.AcceptButton = button2;//將AcceptButton綁定到button2上
3、Button控件
(1)功能:當(dāng)用戶(hù)單擊它引發(fā)事件。它是一個(gè)按鈕
(2)它有什么屬性?
①Text
表示獲取與控件關(guān)聯(lián)的文本
button1.Text = "取消";//設(shè)置button1顯示的文本為取消
②width和height
表示獲取控件的寬度和高度
button1.Width = 50;//設(shè)置button1的寬度(合適即可) button1.Height = 30;//設(shè)置button1的高度(合適即可)
③top
表示獲取控件上邊緣與容器工作區(qū)上邊緣之間的距離
button2.Top = button1.Top;//獲取button1的位置。往下
4、設(shè)置時(shí)間
DateTime.Now//表示獲取一個(gè)DateTime對(duì)象,該對(duì)象設(shè)置為此計(jì)算機(jī)上的當(dāng)前日期和時(shí)間,表示為本地時(shí)間
//其實(shí)就是獲取此時(shí)計(jì)算機(jī)的日期和時(shí)間
DateTime表示時(shí)間上的一刻,通常以日期和當(dāng)前時(shí)間表示
5、轉(zhuǎn)義字符\r\n
"\r\n//表述換行
二、聊天窗口規(guī)則
(1)由兩個(gè)框組成,一個(gè)輸入,一個(gè)讀
(2)由兩個(gè)按鈕,可發(fā)送,可取消,按下發(fā)送即可發(fā)送消息,按下取消即可取消將要發(fā)送的消息
(3)回車(chē)可發(fā)送消息
(4)送人的消息有姓名和稱(chēng)號(hào)
三、思想(分析)
(1)插入兩個(gè)輸入框,一個(gè)只可讀,一個(gè)可以寫(xiě)消息
(2)將光標(biāo)定位到下邊框
(3)然后設(shè)置兩個(gè)框的寬度一樣,高度不等
(4)將下邊框的文本給上邊框?qū)崿F(xiàn)發(fā)送,然后發(fā)送完后無(wú)消息
(5)將光標(biāo)定位到下邊框
(6)優(yōu)化發(fā)送結(jié)構(gòu)(人名,號(hào)碼和稱(chēng)號(hào)和時(shí)間)
(7)添加兩個(gè)按鈕,一個(gè)為取消,一個(gè)為發(fā)送
(8)將上邊框發(fā)送的內(nèi)容綁定到發(fā)送按鈕上即可發(fā)送
(9)設(shè)置按下Enter即可發(fā)送,需要綁定一些事件
(10)將光標(biāo)定位到最左邊
四、實(shí)際操作
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;
namespace 聊天窗體
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Size = new Size(600, 400);
textBox1.Multiline = true;//設(shè)置textbox1可以多行顯示
textBox1.Height = 200;//再去設(shè)定它的高就好了
textBox1.ReadOnly = true;//將文本框設(shè)置為只讀
textBox2.Multiline = true;//將textbox2設(shè)置為可以多行顯示
textBox2.Height = 70;//設(shè)置textbox2的高度(合適即可)
textBox2.Width = textBox1.Width;//獲取textBox1.Width的寬度意思就是讓textBox2和textBox1的寬度一樣
textBox2.TabIndex = 0; //將光標(biāo)定位到 textBox2框中
button1.Text = "取消";//設(shè)置button1顯示的文本為取消
button2.Text = "發(fā)送";//設(shè)置button1顯示的文本為發(fā)送
button1.Top = 320;//設(shè)置button1的位置,往下(合適即可)
button1.Width = 50;//設(shè)置button1的寬度(合適即可)
button1.Height = 30;//設(shè)置button1的高度(合適即可)
button2.Top = button1.Top;//獲取button1的位置。往下
button2.Width = button1.Width;//獲取button1的寬度
button2.Height = button1.Height;//獲取button1的高度
this.AcceptButton = button2;//將AcceptButton綁定到button2上,然后光標(biāo)就在最左邊
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";//取消消息
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text+="【潛水】豬豬狹(2024415986)"+DateTime.Now+"\r\n"+"\r\n"+textBox2.Text+"\r\n";//將textBox2.Text的文本給textBox1.Text,就實(shí)現(xiàn)發(fā)送
//+表示鏈接,讓他顯示之前發(fā)送的信息 \r\n轉(zhuǎn)義字符,表示換行 DateTime.Now表示設(shè)置計(jì)算機(jī)當(dāng)前的日期時(shí)間
textBox2.Text = "";//信息發(fā)送后,清空 textBox2的文本
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
//KeyDown表示首次按下某個(gè)鍵時(shí)發(fā)生
//事件對(duì)象e 可以向我們提供有關(guān)鍵盤(pán)上的數(shù)據(jù)
if (e.KeyCode == Keys.Enter)//判斷如果按下鍵盤(pán)上的Enter時(shí)就執(zhí)行下列代碼,發(fā)送消息
{
textBox1.Text += "【潛水】豬豬狹(2024415986)" + DateTime.Now + "\r\n" + "\r\n" + textBox2.Text + "\r\n";//將textBox2.Text的文本給textBox1.Text,就實(shí)現(xiàn)發(fā)送
//+表示鏈接,讓他顯示之前發(fā)送的信息 \r\n轉(zhuǎn)義字符,表示換行 DateTime.Now表示設(shè)置計(jì)算機(jī)當(dāng)前的日期時(shí)間
textBox2.Text = "";//信息發(fā)送后,清空 textBox2的文本
}
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#實(shí)現(xiàn)簡(jiǎn)易多人聊天室
- C#使用Socket實(shí)現(xiàn)本地多人聊天室
- c#基于WinForm的Socket實(shí)現(xiàn)簡(jiǎn)單的聊天室 IM
- C#制作簡(jiǎn)單的多人在線即時(shí)交流聊天室
- 分享一個(gè)C#編寫(xiě)簡(jiǎn)單的聊天程序(詳細(xì)介紹)
- C#聊天程序服務(wù)端與客戶(hù)端完整實(shí)例代碼
- 基于c#用Socket做一個(gè)局域網(wǎng)聊天工具
- c#多線程網(wǎng)絡(luò)聊天程序代碼分享(服務(wù)器端和客戶(hù)端)
- C#實(shí)現(xiàn)簡(jiǎn)單聊天程序的方法
- C#使用WebSocket實(shí)現(xiàn)聊天室功能
相關(guān)文章
C#?WPF?ListBox?動(dòng)態(tài)顯示圖片功能
這篇文章主要介紹了C#?WPF?ListBox?動(dòng)態(tài)顯示圖片,處理過(guò)程分為前臺(tái)代碼和后臺(tái)代碼,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
C# 中使用NModbus4通信庫(kù)執(zhí)行寫(xiě)操作
在C#中NModbus4庫(kù)提供了一個(gè)方便的方式來(lái)與支持Modbus協(xié)議的設(shè)備進(jìn)行交互,本文就來(lái)介紹了使用NModbus4通信庫(kù)執(zhí)行寫(xiě)操作,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
C#結(jié)合JavaScript實(shí)現(xiàn)手寫(xiě)板簽名效果
這篇文章主要為大家詳細(xì)介紹了C#如何結(jié)合JavaScript實(shí)現(xiàn)手寫(xiě)板寫(xiě)字并上傳到服務(wù)器進(jìn)行處理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
Unity接入百度AI實(shí)現(xiàn)通用物體和場(chǎng)景識(shí)別
這篇文章主要介紹了在Unity中接入百度AI接口,從而實(shí)現(xiàn)通用物體和場(chǎng)景的識(shí)別,其中接口返回大類(lèi)及細(xì)分類(lèi)的名稱(chēng),并支持獲取識(shí)別結(jié)果對(duì)應(yīng)的百科信息。感興趣的可以學(xué)習(xí)一下2022-01-01
Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
C#窗體-數(shù)據(jù)庫(kù)連接及登錄功能的實(shí)現(xiàn)案例
這篇文章主要介紹了C#窗體-數(shù)據(jù)庫(kù)連接及登錄功能的實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

