日期:2014-05-18  浏览次数:20687 次

textBox的問題
我想改變50個textbox值
for(int i=1;i<=50;i++)
{
  textBoxi.BlackColor=Color.Blue;
}
怎么實現?呵呵 謝謝指教

------解决方案--------------------
把这些TextBox放到一个容器里,如Panel里,然后遍历这个Panel的Controls属性

foreach(Control c in panel.Controls)
{
TextBox txtBox = c as TextBox;
if(txtBox!=null)

txtBox.BlackColor=Color.Blue; 
}
}
------解决方案--------------------
也可以定一个数组,先将这些TextBox放到数组里
TextBox []txtBoxs = new TextBox[]{TextBox1,TextBox2,....TextBox50};
foreach(TextBox txtBox in txtBoxs)
{
txtBox.BlackColor=Color.Blue; 


------解决方案--------------------
C# code
foreach(control in this.form1.Controls)
{
  if( control is TextBox)
  {
    ((TextBox)control).BlackColor=Color.Blue;
  }
}

------解决方案--------------------
C# code

foreach (Control clt in 你textbox的父级控件)
            {
                if (clt is TextBox)
                {
                    ((TextBox)clt).BlackColor=Color.Blue; 
                }
            }

------解决方案--------------------
foreach (Control ctr in this.Controls)
{
if (ctr is TextBox)
ctr.BackColor = Color.Blue;
}
------解决方案--------------------
方法有很多,如你可以根据TextBox的Name或TabOrder属性来判断他属于1,2,3,4...50
然后根据这个来设置个性的BackColor
------解决方案--------------------
如果你程序启动后TextBox个数不会改变了,那你最好用下面这个方法

也可以定一个数组,先将这些TextBox放到数组里 
TextBox []txtBoxs = new TextBox[]{TextBox1,TextBox2,....TextBox50}; 
foreach(TextBox txtBox in txtBoxs) 

txtBox.BlackColor=Color.Blue; 
}
这样你就在数组里可以随心所欲的找到某一个了

如果你TextBox个数是不固定的,那么在Controls里找吧,其实这个集合也可以算一个数组,往后偏移6个贝