Foxtable(狐表)用户栏目专家坐堂 → [分享]分享自己做的一个自定义循环查找窗口,菜鸟使用高手跳过


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

主题:[分享]分享自己做的一个自定义循环查找窗口,菜鸟使用高手跳过

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


加好友 发短信
等级:童狐 帖子:266 积分:3640 威望:0 精华:0 注册:2012/5/25 15:31:00
[分享]分享自己做的一个自定义循环查找窗口,菜鸟使用高手跳过  发帖心情 Post By:2019/6/18 23:04:00 [显示全部帖子]

一直不喜欢官方自己带的查找功能太弱了,刚开始学,自己做了一个循环查找功能
1、先建两个全局变量col和row
2、再建一个窗口,一个textbox控件和一个按钮控件。在按钮控件里加复制以下代码。
Dim textfind As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim y As Integer = CurrentTable.TopPosition
Dim x As Integer = CurrentTable.BottomPosition
If y <> x Then           '只让选择一个焦点单元格,方便定位
    MessageBox.Show("请只选一个单元格")
    Return
End If
If Vars("col") <> 0 And Vars("row") <> 0 Then  '如果全局变量col和row都不为0时赋值所定位的单元格的坐标
    Vars("col") = CurrentTable.ColSel
    Vars("row") = CurrentTable.RowSel
End If
If Vars("col") = CurrentTable.Cols.Count -1 Then '如果定位的单元格列的坐标是最后一列则赋值全局变量col和row
    Vars("col") = -1
    Vars("row") = Vars("row") +1
End If
If textfind.Text <> Nothing Then   '控件textBox1不为空时执行
    If CurrentTable.Rows.Count > 0 Then   '当前表,行大于0时执行(表不为空时执行)
        For i As Integer = vars("row") To CurrentTable.Rows.Count - 1 '循环行
            For j As Integer = vars("col")+1 To CurrentTable.Cols.Count - 1 '循环列
                If CStr(CurrentTable.Rows(i)(CurrentTable.Cols(j).Name)) Like "*" & textfind.Text & "*" Then '判断转换为字符串的单元格数据是不是包含控件textbox1里的数据
                    vars("row") = i   '累加到变量
                    vars("col") = j   '累加到变量
                    CurrentTable.Select(i,j)   '定位当前表的单元格
                    Return   '找到了就终止执行程序
                End If
            Next
            vars("col") = 0 '在所有列没找到就重0列开始
        Next
        vars("col") = 0  '重头再来
        vars("row") = 0  '重头再来
        MessageBox.Show("已找完所有,将重头再找.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
End If

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


加好友 发短信
等级:童狐 帖子:266 积分:3640 威望:0 精华:0 注册:2012/5/25 15:31:00
  发帖心情 Post By:2019/6/19 12:40:00 [显示全部帖子]

谢谢蓝版主查看,但没有错啊前面有判断的 f Vars("col") = CurrentTable.Cols.Count -1 Then '如果定位的单元格列的坐标是最后一列则赋值全局变量col和row Vars("col") = -1 Vars("row") = Vars("row") +1 End If
[此贴子已经被作者于2019/6/19 12:40:27编辑过]

 回到顶部