如何在 winform 全局 C# 中为所有文本框设置背景色

本文关键字:文本 置背景色 winform 全局 | 更新日期: 2023-09-27 18:32:13

如何全局为 win 表单中的所有文本框设置颜色?我们可以在全局变量中设置它并在需要时使用吗?我需要从全局变量中设置form_load控件的背景颜色,而不是编写

mytextbox1.BackColor = Color.Red;
mytextbox2.BackColor = Color.Red; 

如何在 winform 全局 C# 中为所有文本框设置背景色

 private void SetRedColorToTextBoxes()
 {
     Action<Control.ControlCollection> func = null;
     func = (controls) =>
         {
             foreach (Control control in controls)
                 if (control is TextBox)
                     (control as TextBox).BackColor = Color.Red;
                 else
                     func(control.Controls);
         };
     func(Controls);
 }

并在表单加载中调用SetRedColorToTextBoxes()函数。

    private void YourForm_Load(object sender, EventArgs e)
    {
        SetRedColorToTextBoxes();
    }

编辑添加一个.cs文件并将代码放在那里。

  class Helper
   {
    public void SetRedColorToTextBoxes(Form frm)
    {
        Action<Control.ControlCollection> func = null;
        func = (controls) =>
        {
            foreach (Control control in controls)
                if (control is TextBox)
                    (control as TextBox).BackColor = Color.Red;
                else
                    func(control.Controls);
        };
        func(frm.Controls);
    }
}

并将其称为表单加载:

 private void YourForm_Load(object sender, EventArgs e)
    {
        // this means instance of  currentform.
       (new Helper()).SetRedColorToTextBoxes(this);
    }

我可以确保您不是在寻找主题吗?一些第三方,如devexpress提供设计自己的主题的选项

作为对上面Arshad解决方案的轻微更改,我还将制作动态取色的方法:

public void SetRedColorToTextBoxes(Form frm, Color myColor)