首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我在c#.net中移动文本框,如何更改groupBox中文本框的字体颜色?

如果我在c#.net中移动文本框,如何更改groupBox中文本框的字体颜色?
EN

Stack Overflow用户
提问于 2015-01-06 14:10:59
回答 1查看 979关注 0票数 1

如果我在c#.net中移动文本框,如何更改groupBox中文本框的字体颜色?当没有组框时,它可以工作,但是如果textbox在组框中,字体颜色不会改变。

这是在进入groupbox之前工作的初始代码。

代码语言:javascript
运行
复制
foreach (object t in this.Controls)
  if (t.GetType() == typeof(TextBox))
      ((TextBox)t).BackColor = Color.AntiqueWhite;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-06 14:13:00

当您在this.Controls上循环时,您只是得到了该级别的控件,即是您的表单的直接子控件(我假设的是)。

尝试:

代码语言:javascript
运行
复制
foreach (object t in groupBox1.Controls)
        if (t.GetType() == typeof(TextBox))
            ((TextBox)t).BackColor = Color.AntiqueWhite;

如果需要查找整个表单上的所有文本框,则编写一个递归函数以遍历整个控件树:

代码语言:javascript
运行
复制
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 );
}

并使用如下:

代码语言:javascript
运行
复制
ForAll<TextBox>( this, c => c.BackColor = Color.AntiqueWhite );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27800434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档