c# – Windows窗体文本框的透明度
发布时间:2020-12-15 18:06:13 所属栏目:百科 来源:网络整理
导读:我在C#中使用 Windows窗体,我需要使文本框的背景颜色透明.我有一个跟踪栏,从0到255,应该控制它,但我有一些麻烦.我今天早些时候提出了一个问题,要求完全相同的事情,但没有成功. 这是我现在的代码: private void trackAlpha_ValueChanged(object sender,Event
我在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)的事情,但是我不知道我应该把它放在哪里. 解决方法
你需要尝试这样的东西.
添加一个新的用户控件,说CustomTextBox并更改 public partial class CustomTextBox : UserControl 至 public partial class CustomTextBox : TextBox 然后,您将收到以下错误,指出“AutoScaleMode”未定义.删除Designer.cs类中的以下行. this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 对新添加的控件的构造函数进行如下更改. public partial class CustomTextBox : TextBox { public CustomTextBox() { InitializeComponent(); SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.UserPaint,true); BackColor = Color.Transparent; } } 构建,关闭定制控件设计器,如果打开,您将能够使用此控件在任何其他控件或表单上. 从工具箱中删除它,如下所示 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |