Foxtable(狐表)用户栏目专家坐堂 → [求助]遍历控件 返回控件名称的顺序问题


  共有2873人关注过本帖树形打印复制链接

主题:[求助]遍历控件 返回控件名称的顺序问题

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 14:40:00 [显示全部帖子]

用一个数值定义好各个要检测的控件的名字。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 14:58:00 [显示全部帖子]

以下是引用blsu33在2015/11/30 14:44:00的发言:
是不是这个意思

01_BTN....
02_BTN....

 

不是这个意思。是叫你定义数组。

 

Dim 控件名() As String = {"TextBox1", "TextBox2", "TextBox3"}

 

然后循环这个数组。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 18:28:00 [显示全部帖子]

If Tables("备份计划").Current.DataRow.RowState = DataRowState.Unchanged Then'非空变动的行
    Dim Result As DialogResult=MessageBox.Show("是否保存并退出?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each bt As WinForm.Control In e.Form.Controls
            Dim Index As Integer=bt.Name.LastIndexOf("_")
            If bt.Name.Contains("_UN_") AndAlso e.Form.Controls(bt.Name).text="" Then
                bt.BackColor=Color.Red
                MessageBox.Show("存在空数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                e.Cancel=True
                Exit for
            End If
        Next
       
    Else
        Tables("备份计划").Current.Delete
        Tables("A备份计划").save
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 21:24:00 [显示全部帖子]

If Tables("表A").Current.DataRow.RowState <> DataRowState.Unchanged Then'非空变动的行
    Dim Result As DialogResult=MessageBox.Show("是否保存并退出?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each bt As object In e.Form.Controls
            If bt.Name.Contains("_un_") AndAlso bt.text="" Then
                bt.BackColor=Color.Red
                MessageBox.Show("存在空数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                e.Cancel=True
                bt.Select
                Exit For
            Else
                bt.BackColor=Color.White
            End If
        Next
       
    Else
        Tables("表A").Current.Delete
        Tables("表A").save
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 21:35:00 [显示全部帖子]

object是最大的类型,不确定是什么类型的时候,就直接写object


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 22:28:00 [显示全部帖子]

大小写要匹配,要么改代码

 

If bt.Name.ToUpper.Contains("_UN_")

 

[此贴子已经被作者于2015/11/30 22:28:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 22:50:00 [显示全部帖子]

一样那样写啊。具体什么问题?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 23:14:00 [显示全部帖子]

代码没问题。

 回到顶部