以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]遍历导航栏并删除某些页面的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169555)

--  作者:昱飞哥
--  发布时间:2021/6/20 22:36:00
--  [求助]遍历导航栏并删除某些页面的问题

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


如图所示,比方我新建了一个“NavBar1”,三个页面名称和按钮标题都写得一样的。

然后,我在窗口的afterload事件写了如下代码:
For Each p As WinForm.NavPage In e.Form.Controls("NavBar1").navpages
    If p.Name <> "日历"
        e.Form.Controls("NavBar1").navpages.delete(p.name)
    End If
Next

我的本意是:删除导航栏除了“日历”的其他所有页面,结果运行结果却是下面这样:

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
不知道到底哪里错了。

--  作者:有点蓝
--  发布时间:2021/6/20 22:56:00
--  
倒序处理


For i As Integer = e.Form.Controls("NavBar1").navpages.count - 1 To 0 Step -1
    Dim p As WinForm.NavPage = e.Form.Controls("NavBar1").navpages(i)
    If p.Name <> "日历"
        e.Form.Controls("NavBar1").navpages.delete(p.name)
    End If
Next

--  作者:昱飞哥
--  发布时间:2021/6/20 23:16:00
--  
蓝老师,为什么要这样呢?我写的遍历的代码不能遍历所有页面吗?
--  作者:有点蓝
--  发布时间:2021/6/20 23:41:00
--  
看看:http://www.foxtable.com/webhelp/topics/0599.htm
--  作者:昱飞哥
--  发布时间:2021/6/20 23:44:00
--  
明白了,谢谢老师