繁体   English   中英

同步标签页及其控件

[英]synchronising tabpages and their controls

我有x个TabPage,每个TabPage上都有一个AddressBar控件和一个WebBrowser控件。 WebBrowser控件(自定义控件)具有int类型的属性,称为BrowserCount。

BrowserCount值应与其所在的TabPage相同。 因此TabPage [0]的浏览器的BrowserCount = 0; 等等

但是,当我删除TabPage时,数字不同步。 显然,答案是简单地遍历其余TabePages并将BrowserCount重置为TabPages新索引。

我有以下代码:

private void UpdateTabs()
    {
        // Renumber Tabs and Browsers
        int tabCount = 0;
        foreach (TabPage tp in customTabControl1.TabPages)
        {
            tp.Tag = tabCount;
            foreach (Control ctrl in tp.Controls)
            {
                if (ctrl.Name == "browser")
                {
                    ctrl.BrowserCount = TabCount; // Error Unknown member BrowserCount
                }
            }
        }
    }

看来我需要在该选项卡上掌握浏览器的实际实例才能访问BrowserCount属性(这根本不是属性,它只是一个公共(非静态)变量)。

有什么想法可以使浏览器的BrowseCount重新编号,使其与父TabPage的索引相同吗?

谢谢。

//错误未知成员BrowserCount

是的...因为您的变量“ ctrl”属于Control类型,而Control没有这样的属性/字段“ BrowserCount”。

您需要CAST“ ctrl”为正确的类型。 这可能看起来像:

        int tabCount = 0;
        foreach (TabPage tp in customTabControl1.TabPages)
        {
            tp.Tag = tabCount;
            foreach (Control ctrl in tp.Controls)
            {
                if (ctl is YourUserControlTypeHere)
                {
                    YourUserControlTypeHere uc = (YourUserControlTypeHere)ctl;
                    uc.BrowserCount = TabCount; // Error Unknown member BrowserCount
                }
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM