Tab Control的ContainsKey()方法比较什么?

时间:2010-12-16 06:44:02

标签: winforms controls

我想创建一个只能打开一次内容的Tab Control。打开的每个项目都需要检查容器以确保它尚未显示。我相信我想要使用的方法是bool TabControl.TabPages.ContainsKey(string key)方法,但它总是返回值 false

我已经创建了一个解决方法,我将对象存储在一个单独的列表中,我与tab控件保持同步,但感觉非常错误。我在控件的TabPages属性中有一个列表,所以我应该可以查询它。

我错过了一处房产吗?我对这种方法的期望是什么以及它的表现是否正确?如何让它正确识别我打开的标签?

以下是一些与我正在做的类似的示例代码:

private void _fillTabControl()
{
    List<string> keys = new List<string>() { "one", "two" };
    foreach (string key in keys)
        _addTab(key);

    bool alreadyOpened = tabControl.TabPages.ContainsKey(keys[0]);
}
private void _addTab(string key)
{
    TextBox textBox = new TextBox();
    textBox.Text = key;

    TabPage tab = new TabPage();
    tab.Text = key;

    tab.Controls.Add(textBox);
    tabControl.TabPages.Add(tab);
}

1 个答案:

答案 0 :(得分:1)

医生说的一切:

名称属性对应于TabControl.TabPageCollection中TabPage的键。”

您正在使用Text属性,您应该设置

tab.Name = "MyName";

然后

tabControl.TabPages.ContainsKey("MyName");

将返回true;