我正在使用C#中的windows窗体,我需要使一个文本框的背景色透明。我有一个从0到255的跟踪条,它应该可以控制它,但我遇到了一些麻烦。今天早些时候我创建了一个问题,问完全相同的事情,但没有成功。
下面是我目前拥有的代码:
private void trackAlpha_ValueChanged(object sender, EventArgs e)
{
newColor = Color.FromArgb(trackAlpha.Value, colorDialog.Color.R, colorDialog.Color.G, colorDialog.Color.B);
colorDialog.Color = newColor; // The Windows dialog used to pick the colors
colorPreview.BackColor = newColor; // Textbox that I'm setting the background color
}
问题是什么都没发生。你知道为什么这不起作用吗?
在上一个问题中,这个好人提到了一些关于SetStyle(ControlStyles.SupportsTransparentBackColor, true);
的东西,但是我不知道应该把它放在哪里。
8条答案
按热度按时间zi8p0yeb1#
就这句台词,对我来说效果很好!
来源:https://www.codegrepper.com/code-examples/csharp/set+textbox+colour+to+transparent+c%23
bnlyeluc2#
晚上好,我知道现在回答这个问题已经太晚了,但是今天我面临着同样的问题。对于我来说,作为一个初学者,很难找到答案(而且开始学习WPF的发布日期已经不多了)。而上面的答案确实救了我。https://stackoverflow.com/a/16050862/18680342
但不幸的是,它有一个缺陷的形式消失的文字时,散焦。不久前,我设法找到了一个技巧来修复这个缺陷。我只是想分享它。这不是理想的,但为我工作。这里:https://stackoverflow.com/a/71896800/18680342
oprakyz73#
这对我来说是最有效的,不要忘记交换你的文本框名称。
vsikbqxv4#
zsbz8rwp5#
你得试试这样的。
添加一个新的用户控件,例如CustomTextBox并更改
到
然后,您将收到以下错误消息,指出未定义“AutoScaleMode”。请删除Designer.cs类中的以下行。
对新添加控件的构造函数进行更改,如下所示。
生成,请关闭自定义控件设计器(如果打开),这样您就可以在任何其他控件或窗体上使用此控件。
将其从工具箱中拖出来,如下所示
jtoj6r0c6#
创建一个继承自TextBox的新控件,在构造函数中设置样式以允许透明。然后使用新控件代替TextBox
在构造函数中执行以下操作:
这将允许新控件具有透明背景色。
您可以在此处阅读有关控件样式的更多信息; MSDN: Control Styles,这可能也有帮助; Inheriting from a Windows Forms Control with Visual C#
wbgh16ku7#
我从来不喜欢为此制作自己的继承控件。所以我为私有SetStyle函数制作了一个 Package 器函数。
尝试使用它,而不是创建自己的类?
第一个月
igsr9ssn8#
很抱歉发现旧的帖子,但是,已经搜索了几天,现在找到一个解决这个可怕的问题,没有透明的文本框!!!(令人惊讶的是,MSAccess有一个检查状态显示透明度!)
无论如何,我已经建立了一个VB的工作区,然而,它是非常粗糙,虽然可能会帮助很多人也希望从更多的硬核'的任何见解输入...
它基本上使用文本框,然后调整大小,并替换为一个标签(因此现在表示一个透明的“出现”文本框。还有一些其他的事情,如停止哔哔声,如果按回车键在单行文本框。
创建一个新的类,并将所有代码粘贴到顶部,这应该会创建两个自定义对象(CTextBox和CLabel)-您只需要在表单设计中使用CTEXTBOX。
很容易转换成C,如果这是你的语言,但请让我知道,如果有任何建议?