C#/Csharp桌面应用开发小作业小程序,公司内部的即时通讯软件

(六) 从西南石油大学计科院毕业之后,你顺利加入了一家初创软件公司,该公司需要为客户开发一款公司内部的即时通讯软件。软件部经理决定将文字聊天工作交付由你完成。请根据相关需求说明及概要编码提示,结合桌面应用程序开发所学知识,顺利完成上述软件的开发工作:
在这里插入图片描述
软件需求及编码提示:
 本窗体包含一个主窗体,窗体大小:855 * 652。
 窗体上方放置一个FlowLayoutPanel控件,BorderStyle属性设置为FixedSingle。
 该FlowLayoutPanel的其他属性设置为:BackColor设置为白色,AutoScroll设置为true。
//AutoScroll,设置为true是自动生成滚动条
 在FlowLayoutPanel下方放置一个RichTextBox,设置字体为:微软雅黑, 12pt。
 在RichTextBox下方左右分别放置两个按钮,一个标题为“清空”,另一个标题为“发送”。
 编写代码, 当用户点击发送的时候,用代码的方式生成一个Label控件。例如Label lbl = new Label(); lbl.Text=…利用上述方式,设置该Label的文本为RichTextBox中的内容,合理设置其宽度和高度,利用new Font(“微软雅黑”, 15)设置字体为;利用flowLayoutPanel1.Controls.Add添加上述Label到flowLayoutPanel上。至此,你可看到,你想要发送的内容显示在了上方panel上。
这里有一个概念,null和"",的区别,null表示为空,在物理上面是没有地址的,而""是有地址的,但是字符串为空
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Text = “”;//在载入的时候就把它的Text设置为空但是是有地址的,如果不设置这个那么后面的判断就失效。
}
if (richTextBox1.Text != “”) {//如果Text为空,但是存在地址

                Label lbl = new Label();
                lbl.Text ="何佳洋"+"("+DateTime.Now.ToLocalTime()+")"+ ":"+richTextBox1.Text;
                lbl.Font = new Font("微软雅黑", 15);
                lbl.Width = richTextBox1.Width;
                lbl.Height = (lbl.Text.Length*25/815)*25 +25;//这里有个细节,自己根据输入字符串的长度调整它的高度,能容纳更多的行,如果设计固定高度则要拉横向滚动条,看起来很不方便,但是我这里判断不了pt和C#里面的长度换算,这只是个粗糙的换算,输入的行数越多,两个label之间的间隔越大
                flowLayoutPanel1.Controls.Add(lbl);//自动把label放上去,因为label的宽度等于flowLayoutPanel,所以就完美贴合了
                richTextBox1.Text = "";//发送完自动设置文本框为空
            }

 利用DateTime.Now.ToLocalTime()可以获得系统时间字符串,将你的名字 + 该当前时间字符串 + 要发送的内容—组合成一条消息,加以显示。具体显示效果如上图所示。
lbl.Text =“何佳洋”+"("+DateTime.Now.ToLocalTime()+")"+ “:”+richTextBox1.Text;
 编写代码,当RichTextBox中内容为空的时候,不做处理。
//编写了一个if语句来达到这个效果
 编写代码,当RichTextBox发送完毕后,RichTextBox被重新设置为空。
 编写代码,当用户点击清空按钮的时候,清空flowLayoutPanel1中添加的所有Label控件。
private void Button1_Click(object sender, EventArgs e)
{
flowLayoutPanel1.Controls.Clear();
}

代码

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 ChatRoom
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Button2_Click(object sender, EventArgs e)
    {
        if (richTextBox1.Text != "") {

            Label lbl = new Label();
            lbl.Text ="何佳洋"+"("+DateTime.Now.ToLocalTime()+")"+ ":"+richTextBox1.Text;
            lbl.Font = new Font("微软雅黑", 15);
            lbl.Width = richTextBox1.Width;
            lbl.Height = (lbl.Text.Length*25/815)*25 +25;
            flowLayoutPanel1.Controls.Add(lbl);
            richTextBox1.Text = "";
        }
        
        
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        richTextBox1.Text = "";
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        flowLayoutPanel1.Controls.Clear();
    }
}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值