0

我有一组标签页,我需要在运行时更改它们的内容(控件)。一个页面可能由组合框、文本框和标签组成,我想用一个按钮替换整个选项卡。我读到的是,这样做的方法是删除标签页,而不是遍历页面上的所有控件来设置它们的可见性,这根本不起作用。我有以下代码:

foreach (TabPage t in tabControl1.TabPages)
{
    tabControl1.Controls.Remove(t);
}

newPanelButton = new Button();
newPanelButton.Text = "0% Complete";
newPanelButton.Location = new Point(117, 75);
newPanelButton.Height = 80;
newPanelButton.Width = 200;

TabPage tabPage = new TabPage();
tabPage.Controls.Add(newPanelButton);

tabControl1.Controls.Add(tabPage);            

Refresh();

该代码没有任何影响,就好像它甚至不存在一样。现有的控件和页面根本没有改变。我错过了什么?

4

2 回答 2

0

您应该使用 TabControl.TabPages 属性从/向您的 tabcontrol 删除/添加页面。

你的代码应该是(我在这里和那里缩短了它):

tabControl1.TabPages.Clear();

var newPanelButton = new Button() {
    Text = "0% Complete",
    Location = new Point(117, 75),
    Height = 80,
    Width = 200
};

var tabPage = new TabPage();
tabPage.Controls.Add(newPanelButton);

tabControl1.TabPages.Add(tabPage);         
于 2012-09-27T12:24:38.507 回答
0

tabControl1.Controls.Add(tabPage);

应该

tabControl1.TabPages.Add(tabPage);

于 2012-09-27T12:07:37.207 回答