C#控件开发3—文本显示、文本设值

目录

  • 1.文本设置
    • 1)定义属性
    • 2)定义事件
  • 2.本文显示
    • 1) 定义属性
    • 2)定义事件
  • End

如何绘制一个便捷的文本显示组件、文本设值组件(TextShow,TextSet)?

绘制此控件的目的就是方便一键搞定标签显示(可自定义方法显示文本颜色等),方便自定义方法又省略了挨个拖拽的过程

1.文本设置

1)定义属性

  • 属性:字体、标签、值、单位
 public TextSet(){InitializeComponent();this.txt_Value.ReadOnly = true;}#region 属性  字体、标签、值、单位private Font textFont = new Font("微软雅黑", 12);[Browsable(true)][Category("布局_G")][Description("字体格式")]public Font TextFont{get { return textFont; }set{if (value != null){textFont = value;this.lbl_Title.Font = this.lbl_Unit.Font = this.txt_Value.Font = textFont;}}}private Color textColor = Color.Black;[Browsable(true)][Category("布局_G")][Description("文本颜色")]public Color TextColor{get { return textColor; }set{textColor = value;this.lbl_Title.ForeColor = this.lbl_Unit.ForeColor = this.txt_Value.ForeColor = textColor;}}private float textScale = 0.37f;[Browsable(true)][Category("布局_G")][Description("控件刻度")]public float TextScale{get { return textScale; }set{textScale = value;this.tableLayoutPanel1.ColumnStyles[0].Width = (this.Width - textScale * this.Width) * 0.75f;this.tableLayoutPanel1.ColumnStyles[1].Width = textScale * this.Width;this.tableLayoutPanel1.ColumnStyles[2].Width = (this.Width - textScale * this.Width) * 0.25f;}}private string varTitle = "变量名称";[Browsable(true)][Category("布局_G")][Description("变量名称")]public string VarTitle{get { return varTitle; }set{varTitle = value;this.lbl_Title.Text = varTitle;}}private string varValue = "21.50";[Browsable(true)][Category("布局_G")][Description("输入值")]public string VarValue{get { return varValue; }set{varValue = value;this.txt_Value.Text = varValue;}}private string varUnit = "℃";[Browsable(true)][Category("布局_G")][Description("单位")]public string VarUnit{get { return varUnit; }set{varUnit = value;this.lbl_Unit.Text = varUnit;}}#endregion

2)定义事件

  • 键入使能方法、事件
#region  输入使能事件//正在输入标志位
public bool IsSetting { get; set; }private void txt_Value_Enter(object sender, EventArgs e)
{IsSetting = true;this.txt_Value.ReadOnly = false;
}private void txt_Value_Leave(object sender, EventArgs e)
{IsSetting = false;this.txt_Value.ReadOnly = true;
}//添加输入完成事件
public event EventHandler SettingChanged;private void txt_Value_KeyDown(object sender, KeyEventArgs e)
{if (e.KeyCode == Keys.Enter){//技巧:输入完成移动焦点~输入框变灰this.lbl_Title.Focus();//激活触发事件SettingChanged?.Invoke(this, e);}
}#endregion

2.本文显示

1) 定义属性

  • 变量名称、变量值、单位、字体、控件刻度
//指定默认事件(双击控件进入)
[DefaultEvent("TextShowClick")]
public partial class TextShow : UserControl
{public TextShow(){InitializeComponent();}#region Fields 变量名称、变量值、单位、字体、控件刻度//[Browsable(true)]//[Category("布局_G")]//[Description("变量名称")]//public String VarName { get; set; }private Font textFont = new Font("Segoe UI Variable Display", 15, FontStyle.Bold);[Browsable(true)][Category("布局_G")][Description("字体格式")]public Font TextFont{get { return textFont; }set{if (value != null){textFont = value;this.lbl_Value.Font = this.lbl_Unit.Font = textFont;}}}private Color textColor = Color.Blue;[Browsable(true)][Category("布局_G")][Description("文本颜色")]public Color TextColor{get { return textColor; }set{textColor = value;this.lbl_Value.ForeColor = this.lbl_Unit.ForeColor = textColor;}}private string varValue = "1.0E-5";[Browsable(true)][Category("布局_G")][Description("变量值")]public string VarValue{get { return varValue; }set{varValue = value;this.lbl_Value.Text = varValue;}}private string unit = "Pa";[Browsable(true)][Category("布局_G")][Description("单位")]public string Unit{get { return unit; }set{unit = value;this.lbl_Unit.Text = unit;}}private float textScale = 0.6f;[Browsable(true)][Category("布局_G")][Description("控件刻度")]public float TextScale{get { return textScale; }set{textScale = value;this.tableLayoutPanel1.ColumnStyles[0].Width = textScale * this.Width;this.tableLayoutPanel1.ColumnStyles[1].Width = this.Width - textScale * this.Width;}}#endregion

2)定义事件

  • 鼠标双击控件后进入自定义事件
   #region Event 鼠标双击控件后进入自定义事件//创建委托—事件public delegate void BtnClickDelegate(object sender, EventArgs e);[Browsable(true)][Category("操作_G")][Description("文本双击触发事件")]public event BtnClickDelegate TextShowClick;private void Lbl_Value_DoubleClick(object sender, EventArgs e){TextShowClick?.Invoke(this, new EventArgs());}#endregion

End

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496537.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SuperMap iDesktopX填补三维可视化地图海岸地形

kele 前言 在做沿海城市三维可视化地图时,会遇到这样一种现象:DEM数据与国家天地图官网的行政区边界不一致,使得三维可视化地图,出现如下图地形缺失现象: 一、原因分析 这是由于海岸线地区受地形精度、采集时间、沙…

代码随想录Day56 108. 冗余连接,109. 冗余连接II。

1.冗余连接 卡码网题目链接(ACM模式)(opens new window) 题目描述 有一个图,它是一棵树,他是拥有 n 个节点(节点编号1到n)和 n - 1 条边的连通无环无向图(其实就是一个线形图)&am…

MySQL外键类型与应用场景总结:优缺点一目了然

前言: MySQL的外键简介:在 MySQL 中,外键 (Foreign Key) 用于建立和强制表之间的关联,确保数据的一致性和完整性。外键的作用主要是限制和维护引用完整性 (Referential Integrity)。 主要体现在引用操作发生变化时的处理方式&…

双指针——查找总价格为目标值的两个商品

一.题目描述 LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode) 二.题目解析 这个题目非常简单,其实就是判断有没有两个数加起来等于target。 三.算法解析 1.暴力解法 暴力解法的话我们可以枚举出所有的情况,然后判…

使用 HTML5 Canvas 实现动态蜈蚣动画

使用 HTML5 Canvas 实现动态蜈蚣动画 1. 项目概述 我们将通过 HTML 和 JavaScript 创建一个动态蜈蚣。蜈蚣由多个节段组成,每个节段看起来像一个小圆形,并且每个节段上都附带有“脚”。蜈蚣的头部会在画布上随机移动。 完整代码在底部!&…

Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉

遇到问题: 从今年开始,不知道咋回事,电脑上的Unity2017像是变了个人似得,突然特别爱闪退掉,有时候还次次闪退,真是让人无语,一直以来我都怀疑是不是电脑上安装了什么别的软件了,导致…

深度学习中的并行策略概述:2 Data Parallelism

深度学习中的并行策略概述:2 Data Parallelism 数据并行(Data Parallelism)的核心在于将模型的数据处理过程并行化。具体来说,面对大规模数据批次时,将其拆分为较小的子批次,并在多个计算设备上同时进行处…

如何快速找到合适的科学问题

前面已经讲过 如何快速判断学术论文质量与相关性 如何描述科学问题?从“术”入手,悟出属于自己的“道” 医学图像分割任务中的典型科学问题 如何快速肝论文? 博士论文的写作架构 这些内容分别阐述了 如何找到重要的相关论文 找到科学问…

如何为运行在 PICO 4 Ultra 设备上的项目设置外部文件读写权限?

PICO 4 Ultra 系列设备使用的安卓操作系统为 Android 14。当项目的 Write Permission 为 Externa (SDCard) 且 Android API Level 大于 32 时,Unity 提供的外部文件读取方式在 PICO 4 Ultra 设备上将失效。此问题提供两种解决方法,按实际情况选取。 解决…

MacOS安装Xcode(非App Store)

文章目录 访问官网资源页面 访问官网资源页面 直接访问官网的历史版本下载资源页面地址:https://developer.apple.com/download/more/完成APP ID的登陆,直接找到需要的软件下载即可 解压后,安装将xcode.app移动到应用程序文件夹。

OpenLinkSaas使用手册-Git工具

在OpenLinkSaas的工具箱里面,最基础的一个就是Git仓库管理。Git仓库功能让git使用更加简单和强大,不仅可以使用常规的commit/pull/push/branch等功能外,还连接了Git仓库供应商的能力。 OpenLinkSass支持使用国内主流的Git仓库供应商的账号登录…

.NET平台用C#通过字节流动态操作Excel文件

在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据。这种方法允许开发者直接在内存中创建、修改和保存Excel文档,无需依赖直接的文件储存、读取操作,从而提高了程序的性能和安全性。使用流技术处理Excel不仅简化了…

vue之axios基本使用

文章目录 1. axios 网络请求库2. axiosvue 1. axios 网络请求库 <body> <input type"button" value"get请求" class"get"> <input type"button" value"post请求" class"post"> <!-- 官网提供…

STM32开发笔记123:使用FlyMcu下载程序

文章目录 前言一、FlyMcu二、电路图三、使用方法1、配置2、读取器件信息3、擦除芯片4、加载文件下载程序5、启动应用程序前言 本文介绍使用FlyMcu下载程序到STM32微控制器的方法。 一、FlyMcu FlyMcu轻量级,比STM32CubeProgrammer使用更为简便,下载地址:http://www.mcuis…

mysql返回N/A

在写统计图的接口&#xff0c;sql查询一直无数据&#xff0c;给的默认值也没有实现&#xff1a; SELECTifnull( unit.num, 0 ) riskUnitCount,ifnull( EVENT.num, 0 ) riskEventCount,ifnull( measure.num, 0 ) riskMeasureCount FROMtb_companyLEFT JOIN (SELECTrisk.qyid,co…

Linux网络——TCP的运用

系列文章目录 文章目录 系列文章目录一、服务端实现1.1 创建套接字socket1.2 指定网络接口并bind2.3 设置监听状态listen2.4 获取新链接accept2.5 接收数据并处理&#xff08;服务&#xff09;2.6 整体代码 二、客户端实现2.1 创建套接字socket2.2 指定网络接口2.3 发起链接con…

C/C++ 数据结构与算法【哈夫曼树】 哈夫曼树详细解析【日常学习,考研必备】带图+详细代码

哈夫曼树&#xff08;最优二叉树&#xff09; 1&#xff09;基础概念 **路径&#xff1a;**从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。 **结点的路径长度&#xff1a;**两结点间路径上的分支数。 **树的路径长度&#xff1a;**从树根到每一个结点的路径…

Nginx的性能分析与调优简介

Nginx的性能分析与调优简介 一、Nginx的用途二、Nginx负载均衡策略介绍与调优三、其他调优方式简介四、Nginx的性能监控 一、Nginx的用途 ‌Nginx是一种高性能的HTTP和反向代理服务器&#xff0c;最初作为HTTP服务器开发&#xff0c;主要用于服务静态内容如HTML文件、图像、视…

uniapp使用live-pusher实现模拟人脸识别效果

需求&#xff1a; 1、前端实现模拟用户人脸识别&#xff0c;识别成功后抓取视频流或认证的一张静态图给服务端。 2、服务端调用第三方活体认证接口&#xff0c;验证前端传递的人脸是否存在&#xff0c;把认证结果反馈给前端。 3、前端根据服务端返回的状态&#xff0c;显示在…

基于SpringBoot的“房产销售平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“房产销售平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体模块图 登录窗口界面 房源信息管理窗口界…