如果我在c#.net中移动文本框,如何更改groupBox中文本框的字体颜色?当没有组框时,它可以工作,但是如果textbox在组框中,字体颜色不会改变。
这是在进入groupbox之前工作的初始代码。
foreach (object t in this.Controls)
if (t.GetType() == typeof(TextBox))
((TextBox)t).BackColor = Color.AntiqueWhite;
发布于 2015-01-06 14:13:00
当您在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 );
https://stackoverflow.com/questions/27800434
复制相似问题