2011-04-05 93 views
5

我想要做的textBox透明背景的C#.NET Visual Studio是犯了一个错误,如果你定义属性文本框具有透明背景

+3

您能详细说明并显示您的代码吗? – 2011-04-05 19:28:34

+0

我只是想集成图形,并把图像透明的文本框,隐藏图形 – shlomi 2011-04-05 19:33:10

+0

对不起,这个评论是没有帮助。你尝试了什么?你指的是什么错误和属性? – 2011-04-05 19:40:14

回答

4

在构造函数将这个:

SetStyle(ControlStyles.SupportsTransparentBackColor, true); 

类需求启用透明风格。 (由于某些原因,默认情况下不支持)。

public class MyControl : System.Windows.Forms.UserControl 
{ 
     public MyControl() 
     { 
      // Create visual controls 
      InitializeComponent(); 
      SetStyle(ControlStyles.SupportsTransparentBackColor, true); 
     } 
} 

或者,如果它不是一个自定义的控制:

mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true); 

更多Control.SetStyle Method

其他Control Styles

+0

你能解释更多吗? – shlomi 2011-04-05 19:34:57

+0

我已经添加了几个字 – 2011-04-05 19:42:57

+2

这不适用于TextBox。 .NET TextBox仅仅是旧的Win32控件的一个包装,所以他需要做一些子分类。 – HABJAN 2011-04-05 19:50:46

2

这不是一件容易的事。 .Net TextBox控件是Win32编辑控件的一个包装,因此您需要执行子分类以实现背景透明度。

看看这个例子:AlphaBlendTextBox - A transparent/translucent textbox for .NET

+4

该代码项目就像病毒。它不是一个文本框,它看起来像一个。 – 2011-04-05 20:31:37

+0

@HansPassant你能否确认它是病毒?或者你只是没有对实施印象深刻? – 2013-08-24 02:20:10

+1

@Jeremy - 它是自我复制的代码,因为它看起来很有吸引力,但却一直让用户陷入麻烦。 – 2013-08-24 08:24:00

2

我发现了此问题的方法,我有我自己的。 我读过的大部分内容都是真实的。对于已经收费很高的一些环境,“àla”AlphaBlendTextBox方法太复杂或太耗时。

假设你有一个给定的背景颜色和给定的图片或任何你想通过RichTextBox控制看。这是我做了什么(总结):

  1. 在主窗体上,您将图片,文字,按钮或任何以此推算,用适当的背景颜色和/或图片
  2. 创建一个新的形式和它的位置在适当
  3. 一套这种新形式TransparencyKeySystemColors.InactiveBorder
  4. 照顾这种形式的边框属性(FormBorderStyleFormBorderStyle.None; ControlBoxMinimizeBoxMaximizeBoxShowIconfalseTopMosttrueStartPositionFormStartPosition.ManualSizeGripStyleSizeGripStyle.Hide),所以没有明显的形态结构
  5. 创建一个RichTextBox与形式相同的尺寸和位于其上,左上角
  6. 集此框BackColorSystemColors.InactiveBorder(?记得TransparencyKey) 及其BorderStyle为无为好文本框内容
  7. 照顾:颜色(S),字体(S)和字符串
  8. 同步与任何你需要这种形式的知名度.. 。瞧!您可以通过您在文本框中编写和编辑的任何内容来查看您的应用程序背景!

我不能假装这种方法适合每个人,但它比我见过的其他方法更简单,只要我能保持这种方式,我更喜欢更简单的解决方案。

当然,当你关闭主窗体时,你必须照顾子窗体,但这对你来说很基本,不是吗?

享受!

+0

我曾经思考过这样的事情,但步骤3 + 6从来没有超过我的想法。所以它适合你? – TaW 2014-04-21 16:56:29