我有一个包含七个TabSheets的PageControl,所有Tab都被隐藏,我使用pcMain.ActivePage更改页面:= tsAuto(tsMarine等)它可以工作,但更改和更改事件不会被触发。
我尝试了以下操作,但只有在标签可见时才有效。 http://delphi.about.com/od/adptips2005/a/bltip0205_5.htm
我还使用pcMain.SelectNextPage(True)编写了一个程序,递增和递减计数器和SelectNextPage,但它也仅在Tabs可见时才有效。
任何人都有建议如何解决这个问题?我需要使用Changing-Event的AllowChange来防止在数据库处于编辑状态时离开页面。
答案 0 :(得分:0)
来自About.com的代码应该可以正常工作。它明确地调用CanChange
和Change
,后者又调用事件处理程序(如果有的话)。他们不会检查所请求的标签是否可见。
此外,SelectNextPage
也应该有用。您只需确保为第二个参数传递False
,以告知它忽略制表符可见性。 (如果没有为第二个参数指定值,则默认值为True
。)
如果两种技术都不起作用,那么你需要深入挖掘,因为问题出在其他地方。
您可以尝试的另一件事是,如果存在待处理的数据库更改,则不会分配新的活动页面。毕竟,你是决定走下一页的人。如果你事先知道它不应该发生,那就不要在第一时间尝试它。