日期:2014-05-17  浏览次数:21074 次

怎么取得指定控件为空为空值的控件ID
groupBox内有6个txtebox 怎么才可以指定其中几个看是否为空 如指定第 2 3 4 5控件 怎么返回2345为空的控件ID


或者

遍历控件之后能得到所有为空的控件ID 怎么筛选出2345控件里是否有空值

------解决方案--------------------
C# code
 List<int> _list = new List<int>() { 2,3,4,5};
            //返回groupBox1中第2,3,4,5个控件中内容为空的控件ID
            List<string> _nullListId=this.groupBox1.Controls.Cast<Control>().Where((a, i) => { return a is TextBox && _list.Contains(++i)&&string.IsNullOrEmpty(a.Text); }).Select(a => a.Name).ToList();

------解决方案--------------------
_nullListId 存储的就是Id列表
C# code
 List<int> _list = new List<int>() { 2,3,4,5};
            //返回groupBox1中第2,3,4,5个控件中内容为空的控件ID
            List<string> _nullListId=this.groupBox1.Controls.Cast<Control>().Where((a, i) => { return a is TextBox && _list.Contains(++i)&&string.IsNullOrEmpty(a.Text); }).Select(a => a.Name).ToList();
            MessageBox.Show(string.Join(",",_nullListId));//假设以逗号分开

------解决方案--------------------
也可以这样
C# code
List<int> _list = new List<int>() { 2, 3, 4, 5 };
var _nullListId = _list.Where(x => (groupBox1.Controls["textBox" + i.ToString()] as TextBox).Text == "");
MessageBox.Show(string.Join(",", _nullListId).ToArray());

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

string id;
foreach (Control control in groupBox.Controls)
{
    if(((TextBox)control).Text=="")
       {

          id+= ((TextBox)control).ID+";" ;
       }
}
string[] ID=id.Split(';');//就可以得到TextBox为空的ID的数组。