不知道微软扯什么拉鸡蛋子,居然有控件不支持透明,我实在想喷设计的人脑残。尤其可恨的是TextBox不支持,更可恨的是直到最新版.net4.6也不支持。源码又看不见,具体实现细节都不知道,谁能改得动?这也难怪C#会被java大军淹没。不是C#不好,是很多细节没到位。

解决方案一:

重写一个TextBox:

 

public class TransTextBox : TextBox

{
[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;

prams.ClassName = "RICHEDIT50W";

}

return prams;

}

}

}

为什么可以,我不知道,我只是代码的搬运工。然而,这个方案是有所缺陷的。

如果你是大神,可以自己定义出一个全新的TextBox。然后以下就是两种开源的透明的TextBox控件:

需要账号才能下载。可以用github授权登陆。

解决方案二:

AlphaBlendTextBox - A transparent/translucent textbox for .NET:

https://www.codeproject.com/Articles/4390/AlphaBlendTextBox-A-transparent-translucent-textbo

解决方案三:

Alpha Blended (Transparent Capable) TextBox and RichTextBox:

https://www.codeproject.com/kb/edit/alphablendedtextcontrols.aspx

最后就是,看清楚,看清楚是winfrom,不是别的。网上那什么:

this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);

或者直接设置:

base.BackColor = Color.Transparent;    (具体可看我前面文章有说明)

卧槽,尼们测试过吗》》》瞎扯得蛋疼。

还有利用form透明来设置的,那么多年了,代码在哪里?一个实现都没有。也是瞎搞,不实际的方案。

——end

出处:https://blog.csdn.net/Mingyueyixi/article/details/55176809

解决winfrom下TextBox不支持透明背景色的更多相关文章

  1. 解决ie6下png背景不能透明bug

    /*第一种方法:通过滤镜 使用css解决的办法. 注意滤镜下的1像素透明gif的覆盖图片的路径是相对页面写的*/ /*注意:这个方法不适合处理img标签引入的png图片,代码太冗余了*/ .banne ...

  2. 解决 aspx 页面 TextBox 不支持 type="number"

    安装 framework 4 并且打上补丁 Microsoft .NET Framework 4 可靠性更新 1 (KB2533523) https://www.microsoft.com/zh-cn ...

  3. 解决IE6下png图片不透明

    ie6着实是非常让人讨厌,显示一张图片,也要带着灰白色的背景色,一张好好的png图片就这么不透明了. 用n多中网上的方式,差点成功的就还有这个了 _background: none; _filter: ...

  4. 解决IE6下不支持 png24的透明图片问题

    常用的两种解决方案: 第一:使用IE滤镜解决 关键代码: css代码  _background:none;_filter:progid:DXImageTransform.Microsoft.Alpha ...

  5. 解决IE6下PNG透明的JS插件:DD_belatedPNG.js

    DD_belatedPNG是一款解决IE6下PNG透明的JS插件,支持background-position和background-repeat属性,支持伪类.使用方法: <!--[if lte ...

  6. 解决全站ie6下PNG图片不透明问题只要几行代码

    解决全站ie6下PNG图片不透明问题只要复制下面这几行代码粘贴在你的文档最底部,需要用到的包DD_belatedPNG_0.0.8a.js自己网上下载吧 代码走起 /*在文档底部加入以下代码*/ &l ...

  7. 解决IE6下png图片透明度不显示的问题

    世界上最遥远的距离,不外乎我在搞前端,你却在用旧IE,现在随着XP要退休了,IE6的市场占有率应该也会逐步下滑.不过基于天朝人民的惰性以及企鹅微软的“扎篱笆”活动,做网站的朋友依旧不能忽视IE6的存在 ...

  8. 解决IE6下浮动层固定定位的经典方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. NSIS:简单按钮美化插件SkinButton,支持透明PNG图片。

    原文 NSIS:简单按钮美化插件SkinButton,支持透明PNG图片. 征得作者贾可的同意,特发布按钮美化插件SkinButton. 插件说明: 使用GDI+库写的一个简单按钮美化插件,支持透明P ...

随机推荐

  1. BOM浏览器操作对象

    BOM定义 一.定时器 1) 定时器1:setInterval() 2)一次性定时器 二.offset.scroll.client

  2. 获取表单内元素组装成对象类型,方便datagrid的load取参数

    /** * 获取表单数据,并将其转换为对象 */ function getFormObj(formId) { var formObj = {}; var inputs = $('#'+formId). ...

  3. C++四种类型之间的转换

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a. C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. const_cas ...

  4. <Yarn> <Capacity Scheduler> <Source Code>

    Yarn capacity scheduler 首先要知道, [Attention: RM有两个组件,其中Scheduler完全就只是负责资源的分配:ApplicationsManager则负责接受a ...

  5. hive中left join、left outer join和left semi join的区别

    先说结论,再举例子.   hive中,left join与left outer join等价.   left semi join与left outer join的区别:left semi join相当 ...

  6. getHibernateTemplate().save(t)执行不成功,数据不能插入到数据库

    BaseDaoImpl类中的代码如下 public void save(T t) {System.out.println(666);getHibernateTemplate().save(t);    ...

  7. 3--Python入门--Python数据集合类型--元组

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  8. POJ 1287 Networking(最小生成树裸题有重边)

    Description You are assigned to design network connections between certain points in a wide area. Yo ...

  9. HDU1548- A strange lift (BFS入门)

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1548 A Strrange lift Time Limit: 2000/1000 MS (Java/ ...

  10. shapefile 转 geojson 文件类型

    http://mapshaper.org/ 从natural earth下载后,扔进去2个文件,就可以了.