C#WinForm中支持透明的TextBox控件
WinForm 的 TextBox不支持透明背景色,设置背景色透明会报错:“控件不支持透明的背景色”。
this.textBox1.BackColor = Color.Transparent;
解决方法一:(测试可用)
public class TransTextBox : RichTextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ExStyle |= 0x020; // transparent
prams.ClassName = "RICHEDIT50W";// TRANSTEXTBOXW
}
return prams;
}
}
}
因为是派生自RichTextBox,所以若想仿照TextBox,还需要在派生控件的构造函数中设置:
this.Multiline = false;
×另,此方法有个可能出现的问题,若此控件下存在背景图片容器(如:PictureBox),会发现输入后再删除时文字会残留:
目前我是通过给此派生控件添加事件函数来刷新界面解决的,如果有更好的方法,欢迎告诉我:
this.TextChanged += new System.EventHandler(this.TransTextBox_TextChanged);
this.LostFocus += new EventHandler(this.TransTextBox_LostFocus);
private void TransTextBox_LostFocus(object sender, EventArgs e)
{
this.Parent.Refresh();
}
private void TransTextBox_TextChanged(object sender, EventArgs e)
{
this.Parent.Refresh();
}
解决方法二:(测试不可用)
class TransTextBox : TextBox
{
public TransTextBox() : base()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
base.BackColor = System.Drawing.Color.Transparent;
this.UpdateStyles();
}
}
如果此方法我使用方式有什么问题,请告诉我~
————————————————
版权声明:本文为CSDN博主「猫殷瞳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/azuredrop/article/details/46662187
C#WinForm中支持透明的TextBox控件的更多相关文章
- Winform中使用DevExpress时给控件添加子控件的方法
场景 在WInform中使用DevExpress时经常使用PanelControl控件用来进行布局设计,因此需要在代码中生成控件并添加子控件. 实现 一种是设置要添加的自控件的Parent属性为容器控 ...
- Winform中使用DevExpress的CheckEdit控件实现多选条件搜索
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- (转)C# WinForm中 获得当前鼠标所在控件 或 将窗体中鼠标所在控件名显示在窗体标题上
原文地址:http://www.cnblogs.com/08shiyan/archive/2011/04/14/2015758.html /********************** * 课题:将窗 ...
- Winform 中DataGridView、dev Gridview控件添加行标题
有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...
- Winform中TextBox控件开启自动提示补全功能
问题:Winform开发中,有一个TextBox控件用以输入姓名,现希望在输入名字时能够自动提示所有可能的名字. 解答:winform中的TextBox控件含有如下三个属性: ① AutoComp ...
- c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法
[前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// ...
- [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" ...
- winform学习(7)Label控件、Button控件、TextBox控件
Label控件是System.Windows.Forms.Label 类提供的控件. 作用:主要用来提供其他控件的描述文字,例如:登录窗体上的用户名.密码(输入框前面的字) Button控件是Syst ...
- C#中设置TextBox控件中仅可以输入数字且设置上限
首先设置只可以输入数字: 首先设置TextBox控件的KeyPress事件:当用户按下的键盘的键不在数字位的话,就禁止输入 private void textBox1_KeyPress(object ...
随机推荐
- 部分请求报 CROS ERROR
当我在写系统时,发现/post/list请求报错跨域问题.但是/login,logout请求能通过.报错为下: 于是开始找文档,最开始以为是后端跨域配置导致的(但是仔细一想,发现/login又能够通过 ...
- 有关Spring事务的传播机制
这是一个非常常见的关于 Spring 事务传播机制 的问题,核心问题是: 在同一个类中,方法 A 调用方法 B,而方法 B 上有 @Transactional 注解.当调用方法 A 时,如果发生异常, ...
- SAP的JOB 的step执行顺序
为了验证一个JOB多个STEP的情况,STEP的执行顺序问题,做了一个小测试. 测试数据: 测试程序1,做step1: 测试程序2,做step2 测试JOB情况 STEP1正常执行 STEP2执行结果 ...
- 好消息!数栈FlinkX技术团队将FlinkX开源项目同步推送到Gitee啦!
数栈是云原生-站式数据中台PaaS,我们在github上有一个有趣的开源项目:FlinkX FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等, ...
- .net一般应用处理程序
.net一般应用处理程序 public void ProcessRequest (HttpContext context) { context.Response.ContentType = " ...
- VS 0xc000007b错误 解决方案
VS 0xc000007b错误 解决方案 这个原因是相关的DLL动态库没有放到和sln同一级目录.
- 文献阅读 A Subdivision Scheme for Hexahedral Meshes
简介 本文提出了一种六面体体细分的方案,可以将六面体分成比较光顺的六面体.同时增加六面体的数量且不改变六面体的拓扑. 本文作者 Bajaj =.= 论文方案 主要由两个步骤组成 split & ...
- 基于外卖系统的RBAC实现
基于角色的访问控制(RBAC)模型实现报告 引言 在我原本开发的基于 Java 的外卖管理系统中,员工之间并没有精细化的权限控制,不同岗位的员工共享了相同的后台操作权限.为了解决这一问题,并实现系统管 ...
- SciTech-Mathematics-Probability+Statistics-Comparison:Chance + Possibility + Likelihood + Probability
https://www.geeksforgeeks.org/what-is-the-difference-between-likelihood-and-probability/ 1. Chance 2 ...
- Linguistics-English-对比Resolve(决心意志)与Determination(决心勇气) + 对于“multiple objects”的“优(advantages)缺(disadvantages)点”的对比的English template(英文模板)
Address from the speech of president Regan: Can anyway still doubt their single-minded(乐此不疲的) determ ...