Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有透明背景的文本框_C#_.net_Winforms_Visual Studio - Fatal编程技术网

C# 具有透明背景的文本框

C# 具有透明背景的文本框,c#,.net,winforms,visual-studio,C#,.net,Winforms,Visual Studio,我想用透明背景c#net制作文本框 如果定义属性,Visual Studio会出错,请将其放入构造函数中: SetStyle(ControlStyles.SupportsTransparentBackColor, true); 该类需要启用透明样式。(由于某些原因,默认情况下不支持它) 或者,如果它不是自定义控件: mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true); 更多关于 其他这不是一项容

我想用透明背景c#net制作文本框
如果定义属性,Visual Studio会出错,请将其放入构造函数中:

SetStyle(ControlStyles.SupportsTransparentBackColor, true);
该类需要启用透明样式。(由于某些原因,默认情况下不支持它)

或者,如果它不是自定义控件:

mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
更多关于


其他

这不是一项容易的任务。Net文本框控件是Win32编辑控件的包装器,因此需要进行子分类以实现背景透明度


看看这个示例:

我找到了解决这个问题的方法,我自己也有。 我在这里读到的大部分都是真的。而对于一些已经负担过重的环境来说,“a la”
AlphaBlendTextBox
方法过于复杂或耗时

假设您有给定的背景色和给定的图片,或者通过
RichTextBox
控件可以看到任何内容。这就是我所做的(总结):

  • 在主窗体上,您可以将图片、文本、按钮或任何投影的内容放置在适当的背景色和/或图片上
  • 创建一个新表单,并在适当的地方对其进行定位
  • 将此新表单
    TransparencyKey
    设置为
    SystemColors.InactiveBorder
  • 请注意此窗体边框属性(
    FormBorderStyle
    FormBorderStyle.None
    ControlBox
    MinimizeBox
    MaximizeBox
    ShowIcon
    false
    最上面的
    true
    StartPosition
    FormStartPosition.Manual
    SizeGroupStyle因此没有可见的表单结构
  • 创建一个与表单大小相同且位于表单左上角的
    RichTextBox
  • 将此框
    BackColor
    设置为
    SystemColors.InactiveBorder
    (还记得透明键吗?) 而且它的
    边框样式也没有
  • 注意文本框内容:颜色、字体和字符串
  • 将此表单可见性与您需要的内容同步,然后…瞧!您可以通过在文本框中编写和编辑的内容查看您的应用程序背景
  • 我不能假装这种方法适合所有人,但它比我见过的其他方法简单得多,只要我能保持这种方式,我确实更喜欢更简单的解决方案

    当然,当您关闭主窗体时,必须处理子窗体,但这对您来说是非常基本的,不是吗


    享受!

    您能详细说明并显示您的代码吗?我只想集成图形并放置隐藏图形的图像透明文本框。此评论没有帮助。您尝试了什么?您指的是什么错误和属性?这是不可能的。您必须移动到WPF才能获得它。请在此处查看我的答案:。如果没有,请告诉我他的帮助…这对TextBox不起作用..NET TextBox只是旧Win32控件的包装器,因此他需要进行某种子分类。即使我对TextBox进行子分类,这也不起作用。我可以成功地将BackColor属性设置为Color.Transparent(不再引发异常),但文本框实际上不是透明的-我看不到它背后的控件。那个代码项目就像一个病毒。它不是一个文本框,它只是看起来像一个。@HansPassant你能确认它是一个病毒吗?或者你只是对它的实现没有印象吗?@Jeremy-它是一个复制自身的代码,因为它看起来很吸引人,但却得到了它s的用户一直都有麻烦。我曾经考虑过类似的事情,但我从来没有想过步骤3+6。那么它对你有效吗?
    mycontrolObject.SetStyle(ControlStyles.SupportsTransparentBackColor, true);