C#带按钮的文本框TextBoxContainButton

经常需要用到各种组合控件,每次组合太麻烦,通过打包成自定义控件,方便调用。

带按钮的文本框,如下图:

clip_image001

文本框内可以输入文本,响应文本框内容变化事件,按钮可以设置点击事件,图标

通过3个组合控件实现。

1 新建自定义控件,添加两个文本框,1个按钮,1个鼠标提示控件(ToolTip)。

一个文本框作为背景,另一个文本框作为输入框,一个按钮点击用,只需通过设置控件属性,编辑成如下效果

clip_image002

2 添加常用属性

[Category("自定义"), Description("按钮图片")]public Image ButtonImage{set{button.Image = value;}get{return button.Image;}}[Category("自定义"), Description("文本框鼠标悬停提示文本")]public string TextBoxToolTipText{set{toolTip1.SetToolTip(this.textBoxFront, value);}get{return toolTip1.GetToolTip(this.textBoxFront);}}[Category("自定义"), Description("按钮鼠标悬停提示文本")]public string ButtonToolTipText{set{toolTip1.SetToolTip(this.button, value);}get{return toolTip1.GetToolTip(this.button);}}[Category("自定义"), Description("文本框内文本")]public string TextBoxText{set{textBoxFront.Text = value;}get{return textBoxFront.Text;}}private bool textBoxReadOnly = false;[Category("自定义"), Description("文本框只读")]public bool TextBoxReadOnly{set{textBoxReadOnly = value;textBoxFront.ReadOnly = textBoxReadOnly;textBoxFront.ReadOnly = textBoxReadOnly;}get{return textBoxReadOnly;}}[Category("自定义"), Description("文本框背景色")]public Color TextBoxBackColor{set{textBoxBack.BackColor = value;textBoxFront.BackColor = value;}get{return textBoxBack.BackColor;}}

 

3 添加按钮点击事件(其他事件添加类似)

public delegate void ButtonClickEventHandler(Object sender, EventArgs e);public event ButtonClickEventHandler ButtonClick; //声明事件protected virtual void OnButtonClick(EventArgs e){if (ButtonClick != null){ // 如果有对象注册

ButtonClick(this, e); // 调用所有注册对象的方法

}}private void button_Click(object sender, EventArgs e){OnButtonClick(e); // 调用 OnButtonClick方法

}

 

4 属性的使用:

clip_image003

5 事件的使用

clip_image004

转载于:https://www.cnblogs.com/yepoint/p/7238667.html

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

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

相关文章

Windows单机配置Zookeeper环境

转自:http://www.jianshu.com/p/f7037105db46 首先要确保机器已经安装好java环境,并且配置好环境变量 http://apache.fayea.com/zookeeper/current/ 下载后,解压缩到硬盘,我这里解压到了 D:\WorkSoftware\zookeeper_3.4.9 解压缩在…

三层架构—简析

三层学习完了,第一次验收的时候,自己理解的也不是非常到位,后来又又一次敲了一遍登陆样例,查阅了一些资料 进行第二次验收才感觉清晰了很多。之前画时序图时我就想过时序图基本上也是非常好的体现了三层,当时也和别人讨…

机房收费系统之结账

其实,我认为机房收费系统中结账的部分是耗我精力最多的。首先我就不明确结账是干嘛的,所以一上来就晕乎乎。后来看了一篇博客说结账方便老板管理的才明确了为什么是“操作员”。这里面要理清的一点,结账的内容是未结账的。 暂时汇总的信息&am…

Java线上应用故障排查之一:高CPU占用

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。 …

Java并发编程实战 代码bug,Java并发编程实战(1)- 并发程序的bug源头

概述并发编程一般属于编程进阶部分的知识,它会涉及到很多底层知识,包括操作系统。编写正确的并发程序是一件很困难的事情,由并发导致的bug,有时很难排查或者重现,这需要我们理解并发的本质,深入分析Bug的源…

ajax小结

转载于:https://www.cnblogs.com/infernoyy/p/7250548.html

app推送以及提示音java,springboot 整合 Jpush 极光推送

产品简介:JPush 是经过考验的大规模 App 推送平台,每天推送消息数超过 5 亿条。 开发者集成 SDK 后,可以通过调用 API 推送消息。同时,JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。 JPush 全面支持 An…

Lydsy2017年4月月赛 抵制克苏恩

Description小Q同学现在沉迷炉石传说不能自拔。他发现一张名为克苏恩的牌很不公平。如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节。炉石传说是这样的一个游戏,每个玩家拥有一个30 点血量的英雄,并且可以用牌召唤至…

怎样学习(3):迭代学习,精益求精

古人云「十年寒窗无人问。一举成名天下知」,这是中国古代为数不多的读书人的真实写照。大多数读书人仅仅有十年寒窗,却不见得成名。 在软件开发领域有瀑布模式的软件project方法论。它将软开发的几个过程「需求分析,概要设计,具体…

matlab宏参赛,MATLAB杯无人机大赛 | 决赛通知!

原标题:MATLAB杯无人机大赛 | 决赛通知!重磅消息——决赛通知!经过近5个多月的准备,MATLAB杯无人机比赛即将迎来精彩的决赛,来自全国10强的参赛队伍,齐聚羊城广州,美丽的中山大学,进…

php表格js特效,JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】

本文实例讲述了JavaScript表格隔行变色和Tab标签页特效。分享给大家供大家参考,具体如下:最近一直在看JavaScript知识,偶尔也穿插一点Jquery,感觉Jquery用起来真爽,减少了很多的代码量,而且学习也不是很高。…

java实现gdal栅格矢量化,《GDAL源码剖析与开发指南》一一1.5 GDAL源码目录

本节书摘来自异步社区出版社《GDAL源码剖析与开发指南》一书中的第1章,第1.5节,作者:李民录 更多章节内容可以访问云栖社区“异步社区”公众号查看。1.5 GDAL源码目录GDAL源码剖析与开发指南下载的GDAL源代码压缩包目录如图1-2所示&#xff0…

netlify支持php吗,hexo netlify 搭建简易博客

npm install hexo-cli -ghexo init blogcd blognpm installhexo server将本地文件夹推送到github修改主题git clone https://github.com/jangdelong/hexo-theme-xups.git themes/xups themes/xups修改yml配置文件重新hexo server自己的博客sleepy-poincare-e0ca11.netlify.c…

jps、jstack、jmap、jhat、jstat、hprof使用详解

https://my.oschina.net/feichexia/blog/196575#comment-list A、 jps(Java Virtual Machine Process Status Tool) jps主要用来输出JVM中运行的进程状态信息。语法格式如下: 如果不指定hostid就默认为当前主机或服务器。 命令行参数选项说明如下:…

oracle数据库日期格式的运算,Oracle时间类型date,timestamp时间差计算

Oracle的时间类型有两种date和timestamp. date精确到秒,timestamp精确到毫秒.1.计算date类型的时间差可以先把年,月,日,小时,分,秒用to_char函数拆分出来,再用to_number函数转换成数值类型.有了这些单独分开的时间就好办了.就再一个个的去减,记得考虑单位换算就行.比如都转换…

url去除掉一个参数php,php怎样去掉url中的参数_后端开发

php去掉url中的参数的要领是:能够经由过程trim()函数来完成。该函数能够删除字符串中的指定字符,并返回已修正的字符串。细致使用要领如:【trim($url,"?");trim($url,"#");】。相干函数引见:(引荐教程&#…

C++之类的静态成员变量和静态成员函数

static静态成员函数 在类中。static 除了声明静态成员变量,还能够声明静态成员函数。普通成员函数能够訪问全部成员变量。而静态成员函数仅仅能訪问静态成员变量。我们知道。当调用一个对象的成员函数(非静态成员函数)时,系统会把…

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

好吧,现在我们假设你已经安装好了VS Code开发工具、.Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在VS Code的扩展菜单中输入OmniSharp,安装扩展即可&…

WPF--TextBlock的ToolTip附加属性

大家可能在项目中,有的时候,由于显示的内容过长,所以,需要显示一部分内容,然后后面用省略号,把鼠标放上去,会显示出来全部的内容。 作为一个LowB程序员的我,第一反应是SubString截取…

Laravel框架一:原理机制篇

转载自http://www.cnblogs.com/XiongMaoMengNan/p/6644892.htmlLaravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特点。 一. 请求周期 Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件。 注册…