如何在 winform 全局 C# 中为所有文本框设置背景色
本文关键字:文本 置背景色 winform 全局 | 更新日期: 2023-09-27 18:32:13
如何全局为 win 表单中的所有文本框设置颜色?我们可以在全局变量中设置它并在需要时使用吗?我需要从全局变量中设置form_load控件的背景颜色,而不是编写
mytextbox1.BackColor = Color.Red;
mytextbox2.BackColor = Color.Red;
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)