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

winform非空验证,怎么按照排列的顺序验证
foreach (Control control in panel.Controls)
  {
  if (control is GroupBox)
  {
  foreach (Control var in control.Controls)
  {
  if (var is TextBox && ((TextBox)var).Text.Trim() == "")
  {
  ((TextBox)var).Focus();
  flag = false;
  }
  }
  }
  }这样非空验证 为什么 不是按照我的文本框排列的顺序验证的??

求救!!

------解决方案--------------------
可能是按照Tab顺序遍历吧,你把tab值改一下试试
------解决方案--------------------
C# code

    DataTable dt1 = DBExec.ExecDataTable(sql);
    DataRow[] foundRows;
    foundRows = dt1.Select("", "ID");

------解决方案--------------------
LZ你这个是获取一个容器里的文本框
意思就是只要有一个为空flag就=false
而且这个获取的顺序是程序自动获取的TAG来排序的

LZ可以将panel这个容器中的textbox的TAGIndex属性自己设置下
------解决方案--------------------
如果这样还不行 LZ单步调试取文本框的tag属性 看看是怎么样变化的 就知道规律了
------解决方案--------------------
好像textbox是按添加循序的;
而且你那个循环应该是判断有空的话,就应该退出循环了,否则焦点有跑到下一个点去了;
------解决方案--------------------
更改InitializeComponent的初始化顺序应该就可以了,推出循环请用break;
------解决方案--------------------
在构造函数中把光标给你想给的控件就可以了吧…
------解决方案--------------------
是要定位到第一个控件?直接在构造函数中,txtmain.focus()就可以吧…我理解的您是这么个意思…