透明Textbox的简单实现!

来源:互联网 发布:数控编程员岗位职责 编辑:程序博客网 时间:2024/05/24 15:40
因.NET境下TextBox是不支持透明背景色的。
当我们在属性设计器中将它们的BackColor设置为Transparent时,
会弹出一个警告窗口“属性值无效:控件不支持透明的背景色”。~

解决方案:
因为C#可以调用底层DLL,
所以我们可以通过底层DLL来实现文本框背景透明下面!
[csharp] view plain copy
  1. private class BaseTextBox : TextBox  
  2.         {  
  3.              
  4.             [DllImport("kernel32.dll", CharSet = CharSet.Auto)]  
  5.             private static extern IntPtr LoadLibrary(string lpFileName);  
  6.             protected override CreateParams CreateParams  
  7.             {  
  8.                 get  
  9.                 {  
  10.                     CreateParams prams = base.CreateParams;  
  11.                     if (LoadLibrary("msftedit.dll") != IntPtr.Zero)  
  12.                     {  
  13.                         prams.ExStyle |= 0x020; // transparent   
  14.                         prams.ClassName = "RICHEDIT50W";  
  15.                     }  
  16.                     return prams;  
  17.                 }  
  18.             }  
  19.               
  20.   
  21.         }  

效果图:
原创粉丝点击