如果我在组框中移动文本框,如何在 c#.net 中更改文本框的字体颜色
本文关键字:文本 net 字体 颜色 移动 如果 | 更新日期: 2023-09-27 18:36:21
如果我在 groupBox 中移动文本框,如何在 c#.net 中更改文本框的字体颜色?当没有分组框时,它有效,但如果文本框位于分组框中,则字体颜色不会更改。
这是在进入分组框之前有效的初始代码。
foreach (object t in this.Controls)
if (t.GetType() == typeof(TextBox))
((TextBox)t).BackColor = Color.AntiqueWhite;
当你循环this.Controls
时,你只是得到那个级别的控件,即作为(我假设是)你的表单的直接子级的控件。
尝试:
foreach (object t in groupBox1.Controls)
if (t.GetType() == typeof(TextBox))
((TextBox)t).BackColor = Color.AntiqueWhite;
如果需要查找整个窗体上的所有文本框,请编写递归函数以遍历整个控件树:
private void ForAll<T>( Control c, Action<T> func ) where T : Control
{
if( c is T )
func( (T)c );
foreach( Control child in c.Controls )
ForAll( child, func );
}
并像这样使用:
ForAll<TextBox>( this, c => c.BackColor = Color.AntiqueWhite );