我创建了一个用户控件文本框,它继承自我在其中设置了backcolor属性的文本框。现在我希望根据使用它的窗体的背景色来更改背景色。我已经使用了这个.parent.backcolor,但是它给我带来了错误。请建议一个解决方案。
public partial class goodtextbox : TextBox
{
public goodtextbox()
{
InitializeComponent();
//background colour inside textbox
this.BackColor = Color.LavenderBlush;
this.BorderStyle = BorderStyle.None;
//font color of textbox
this.ForeColor = Color.White;
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
protected override void OnEnter(EventArgs e)
{
base.OnEnter(e);
this.BackColor = Color.Black;
this.ForeColor = Color.White;
}
protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
this.BackColor = Color.LavenderBlush;
this.ForeColor = Color.Black;
}
1条答案
按热度按时间91zkwejq1#
只需在
Loaded
事件中设置颜色,而不是在构造函数中设置颜色。并通过控件的名称将其设置为控件。另外,获取所需颜色的argb代码,并使用
System.Drawing.Color.FromArgb(a,r,g,b)
而不是使用现有颜色。祝你好运