• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • C#环境下TextBox和RichTextBox透明背景色

    网络   2013/6/15 10:06:12

    文本框控件不支持透明的背景色

    .NET环境下TextBox和RichTextBox是不支持透明背景色的。当我们在属性设计器中将它们的BackColor设置为Transparent时,会弹出一个警告窗口“属性值无效:控件不支持透明的背景色”。

    在网上一搜,有很多解决办法:

    (1)在代码中加入以下代码:textBox1.BackColor = System.Drawing.Color.Transparent;

    (2)通过继承TextBox进行简单设置样式ControlStyles.SupportsTransparentBackColor。

    public class MyTextBox : TextBox
    {
    public MyTextBox()
    {
    this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
    }
    }

    (3)如果不想自己做控件,提供一个比较丧心病狂的思路:

    1. 创建一个窗体,无边框,TrancsparencyKey设置为跟TextBox一样;
    2. 窗体上放一个TextBox,Dock属性设置为fill;
    3. 在主窗体上放置一个Label,设置成透明;
    4. 鼠标点击Label时,将自己做的窗体show出来,并且将label隐藏;
    5. 焦点离开TextBox时,将TextBox的内容复制给Label。关闭无框窗体,显示label;
    6. 其他细节就自己琢磨吧,比如鼠标外观啦,Tab键控制焦点移动啦之类。

    分析:

    方法(1):不可行。虽然编译能过,但会遇到运行时错误。因为WinForm不支持该控件的透明背景色。

    方法(2):不可行。虽然通过设置样式SupportsTransparentBackColor为真之后能够使文本框的背景色

    设置为Transparent,但是却达不到透明效果,背景色仍然不是透明的。

    方法(3):可行但却复杂。不是最佳方案,只能说是如果没有其他方案的情况下才使用该方法。

    总结

    由于.NET框架本身对文本框控件背景色的支持不太好,所以必须使用一些更底层的WIN32函数才能解决。下面是从The Code Project上找到的一些好的实现方式,基本上都是使用底层WIN32函数解决的,具体的代码剖析留到后面有时间再做,现在可以直接方便的使用就行。

    这有一篇专门讲怎么使文本框背景透明的文章:How to make a TextBox/RichTextBox transparent

    开源控件

    AlphaBlendTextBox - A transparent/translucent textbox for .NET

    WinForm-具有透明背景的文本框

    Alpha Blended (Transparent Capable) TextBox and RichTextBox

    WinForm-具有透明背景的文本框



    另外:

    C#中button透明,无边线框,但是点击透明部分能实现它的功能~~~· 谢谢

    最佳答案

    答:按钮的FlatStyle属性改成Flat.加一个button1.BackColor=Color.Transparent;(或者加this.button1.FlatStyle=FlatStyle.Flat;button1.BackColor=Color.Transparent;

    2010-12-23 11:57 dedtfo| 六级

    是Web的话就用ImageButton;是WinForm的话用pictureBox之后加onclick事件,我试过可以。用button的话,在无边框的状态下也能看的出一点点。当然用图片的话完全可以用透明的图片,你可以用PS导出,我试了完全可以。希望对您有一点点帮助。


    阅读(12661) 分享(0)

    上一篇: C#获取屏幕分辨率
    下一篇: C#中时间格式的转换

  • 精彩推荐

    ◆ EditPlus 添加文件比较工具winmerge
    ◆ JS日期格式化扩展函数
    ◆ js判断手机网络类型
    ◆ asp.net怎么实现多线程断点续传?
    ◆ 前端性能优化 - 网页图片资源预加载
    ◆ httpd.ini手册
    ◆ IIS下PHP is_dir()/mkdir() 绝对路径目录BUG
    ◆ 什么是DNS劫持和DNS污染?谈谈运营商的流氓DNS劫持。
    ◆ php木马 隐藏在JPG图片EXIF头部中的恶意软件
    ◆ 中国市场的个人版WinRAR软件完全免费了
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。