winforms 用户根据使用窗体控制背景色

w8rqjzmb  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(201)


我创建了一个用户控件文本框,它继承自我在其中设置了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;
 }
91zkwejq

91zkwejq1#

只需在Loaded事件中设置颜色,而不是在构造函数中设置颜色。并通过控件的名称将其设置为控件。
另外,获取所需颜色的argb代码,并使用System.Drawing.Color.FromArgb(a,r,g,b)而不是使用现有颜色。
祝你好运

相关问题