【问题标题】:TextBox Control Transparency / Picturebox TextTextBox 控件透明度/图片框文本
【发布时间】:2013-09-02 21:06:32
【问题描述】:

我一直想创建一个自定义文本框,因此我找到了两种方法可以让我实现这一目标,尽管它们不是最好的。其中之一是在图片框本身上实际绘制文本,但我找不到任何教程或代码来允许我创建它。

但我确实为 Alpha 通道文本框找到了一些东西,虽然它不允许我将控件置于其他控件之上,但我能够使用它。该代码有效,但我现在唯一的问题是当其他人使用它时,文本是模糊的。

像这样:http://puu.sh/4hzQM.png

这对我来说是这样的:http://puu.sh/4hzUD.jpg

我目前正在使用此代码,我将其转换为 vb.net:http://www.codeproject.com/Articles/4390/AlphaBlendTextBox-A-transparent-translucent-textbo

我想知道是否有办法在其他计算机上修复此模糊文本,或者是否有更简单的方法来解决此问题,因为该代码已有 10 年历史,而且我在任何地方搜索,都找不到其他任何东西。

谢谢。

【问题讨论】:

  • 如果代码已有 10 年的历史,您可能会找到替代方案(即使您所追求的功能已经在 VS 中)。只是为了确保,您对这个控件唯一感兴趣的是设置使 textBox 透明?
  • 我想做一个自定义的文本框,就像我说的,我只发现了两种方法,要么让文本在图片框上绘制,要么让文本框透明,这样你就可以看到下图它。是的,除此之外,我找不到其他任何东西。也许我搜索了错误的东西?此外,我无法将文本框设置为透明或找到在 VS 中拥有自定义文本框的方法。谢谢。
  • 你可以改变VS中的任何控件。最快的方法是通过继承目标控件(在本例中为文本框)并仅修改/添加所需的属性来创建自己的控件。让我做一些测试,我可以写一个示例代码作为答案。
  • 好的,非常感谢您抽出宝贵时间。是的,我发布的代码也是这样做的,但我想有一种更简单的方法可以缩短代码。
  • 你有承诺的自定义文本框。可以肯定的是,它比您使用的要简单得多,但也更可靠。此外,您将完全理解它是如何完成的,这样您就可以添加/删除功能,或者通常更习惯于处理此类事情并完全由您自己构建代码(VB.NET 为您提供了很多功能做很多事情)。

标签: vb.net textbox controls transparency


【解决方案1】:
  1. 添加类

  2. 插入:

Class TransparentControl Inherits Control Public Sub New() MyBase.SetStyle(ControlStyles.UserPaint, True) MyBase.SetStyle(ControlStyles.OptimizedDoubleBuffer, True) MyBase.SetStyle(ControlStyles.SupportsTransparentBackColor, True) MyBase.SetStyle(ControlStyles.ResizeRedraw, True) MyBase.SetStyle(ControlStyles.AllPaintingInWmPaint, True) End Sub End Class Class TransparentTextBox Inherits TextBox Public Sub New() MyBase.ScrollBars = RichTextBoxScrollBars.Both End Sub Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams Get Dim cp As CreateParams = MyBase.CreateParams cp.ExStyle = cp.ExStyle Or &H20 Return cp End Get End Property Protected Overloads Overrides Sub OnTextChanged(ByVal e As System.EventArgs) MyBase.OnTextChanged(e) MyBase.Parent.Refresh() End Sub End Class

  1. 运行您的应用程序

  2. 转到工具箱,在顶部您应该会看到一个名为“TransparentTextBox”的项目添加,忽略错误

  3. 运行应用

  4. 享受

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多