博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简易的C#信息展示板
阅读量:6642 次
发布时间:2019-06-25

本文共 5758 字,大约阅读时间需要 19 分钟。

hot3.png

本文中的展示板是用TextBox实现的,因为工作需要,我实现了一个向TextBox自动生成格式化信息的工具类DisplayBoardHelper

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DisplayBoard{    public class DisplayBoardHelper    {        ///         /// 事件等级        ///         public enum LogLevel        {            ///             /// 调试            ///             DEBUG = 0,            ///             /// 信息            ///             INFO = 1,            ///             /// 通知            ///             NOTICE = 2,            ///             /// 警告            ///             WARNING = 3,            ///             /// 错误            ///             ERROR = 4,            ///             /// 严重            ///             CRIT = 5,            ///             /// 危险            ///             ALERT = 6,            ///             /// 紧急            ///             EMERG = 7        }        ///         /// 将报警等级的枚举打印成字符串        ///         /// 
事件等级        /// 
输出字符串语言 CHS:简体中文 ENG:英语        /// 
        private static string LevelToString(LogLevel level, string lang = "CHS")        {            if (lang == "CHS")            {                switch (level)                {                    case LogLevel.DEBUG: return "调试";                    case LogLevel.INFO: return "信息";                    case LogLevel.NOTICE: return "通知";                    case LogLevel.WARNING: return "警告";                    case LogLevel.ERROR: return "错误";                    case LogLevel.CRIT: return "严重";                    case LogLevel.ALERT: return "危险";                    case LogLevel.EMERG: return "紧急";                    default: return "未知";                }            }            else if (lang == "ENG")            {                switch (level)                {                    case LogLevel.DEBUG: return "DEBUG";                    case LogLevel.INFO: return "INFO";                    case LogLevel.NOTICE: return "NOTICE";                    case LogLevel.WARNING: return "WARNING";                    case LogLevel.ERROR: return "ERROR";                    case LogLevel.CRIT: return "CRIT";                    case LogLevel.ALERT: return "ALERT";                    case LogLevel.EMERG: return "EMERG";                    default: return "UNKNOWN";                }            }            else            {                throw new Exception(lang + ":未知语言类型");            }        }        /// 
        /// 向指定的TextBox中添加一条新日志        ///         /// 
TextBox对象        /// 
日志等级        /// 
日志信息        /// 
使用语言        public static void AddLog(System.Windows.Forms.TextBox tb,             LogLevel logLevel, string logInfo, string lang = "CHS")        {            string sNewLog = string.Format("[{0}][{1}]:{2}\r\n",                DateTime.Now.ToLongTimeString(),                LevelToString(logLevel, lang),                logInfo);            tb.Text += sNewLog;            tb.Select(tb.TextLength, 0);            tb.ScrollToCaret();        }        /// 
        /// 查看TextBox的设置是否符合库最佳使用环境(这个函数并不是必须的,可以选择性调用)        ///         /// 
TextBox对象        /// 
建议(返回false时可查看)        /// 
true:合理 false:不合理
        public static bool IsConfigReasonable(            System.Windows.Forms.TextBox tb,            out string suggestion)        {            bool isConfigReasonable = true;            suggestion = "建议:\n";            //TextBox应被设置为支持多行            if (tb.Multiline == false)            {                suggestion += "控件" + tb.Name + "只支持单行文本(Multiline)\n";                isConfigReasonable = false;            }            //TextBox应被设置为支持纵向滚动条            if (tb.ScrollBars != System.Windows.Forms.ScrollBars.Vertical ||                tb.ScrollBars != System.Windows.Forms.ScrollBars.Both)            {                suggestion += "控件" + tb.Name + "缺少纵向滚动条(ScrollBars)\n";                isConfigReasonable = false;            }            //ReadOnly属性和Enable属性应至少设置一个确保TextBox只读            if (tb.ReadOnly == false && tb.Enabled == true)            {                suggestion += "控件" + tb.Name + "可任意修改(ReadOnly or Enabled)\n";                isConfigReasonable = false;            }            //没有问题,不需要建议            if (isConfigReasonable)            {                suggestion = "";            }            return isConfigReasonable;        }    }}

下面是这个示例程序的实现,这个示例程序中只有一个Dock属性被设置为Fill的TextBox

220817_uwtE_1425762.png

程序代码:

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 DisplayBoard{    public partial class FormMain : Form    {        public FormMain()        {            InitializeComponent();        }        private void FormMain_Load(object sender, EventArgs e)        {            //写入一些日志            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.DEBUG, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.INFO, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.NOTICE, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.WARNING, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.ERROR, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.CRIT, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.ALERT, "这是一条测试信息");            DisplayBoardHelper.AddLog(this.txtDisplayBoard,                 DisplayBoardHelper.LogLevel.EMERG, "这是一条测试信息");            //查看TextBox的设置是否符合库最佳使用环境            string suggestion;            bool b = DisplayBoardHelper.IsConfigReasonable(                this.txtDisplayBoard, out suggestion);            if (!b)            {                MessageBox.Show(suggestion);            }        }    }}

运行结果示例

220817_fvia_1425762.png

DisplayBoardHelper.IsConfigReasonable生成的使用环境建议

221336_3BEZ_1425762.png

END

转载于:https://my.oschina.net/Tsybius2014/blog/350387

你可能感兴趣的文章
spring boot 项目,maven打jar包时,将本地jar一块打入包
查看>>
Windows Server 2012 虚拟化实战:存储(一)
查看>>
linux shell 计算时间差并显示按时分秒显示
查看>>
iptables防火墙
查看>>
最大子序列和问题的解——C++实现;
查看>>
Shell脚本语言
查看>>
.NET快速开发平台,开发效率倍增神器
查看>>
阿里云 Aliplayer高级功能介绍(六):进度条标记
查看>>
【Python学习笔记】数据结构—序列——list列表和tuple元组
查看>>
Oracle 11G r2 Rac修改IP
查看>>
企业为什么需要IT资产管理
查看>>
Linux安装Mongodb4.0及远程配置
查看>>
大文件分割 - split
查看>>
光照模型与面绘制算法---OpenGL光照和表面绘制函数
查看>>
系统文件的损坏导致Windows XP连续重启的解决方案
查看>>
lvs的dr和nat模式配置备忘
查看>>
数据库小知识点
查看>>
北京点击科技有限公司董事长兼总裁——王志东经典语录5
查看>>
书籍推荐
查看>>
Linux误删home目录下的用户目录恢复
查看>>