我有一组标签页,我需要在运行时更改内容(控件)。页面可能包含组合框,文本框和标签,我想用一个按钮替换整个选项卡。我读过的是,这样做的方法是删除标签页而不是循环遍历页面上的所有控件并设置其可见性,这根本不起作用。我有以下代码:
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();
这段代码没有任何影响,就好像它甚至不存在一样。现有控件和页面根本不会更改。我错过了什么?
答案 0 :(得分:0)
tabControl1.Controls.Add(tabPage);
应该是
tabControl1.TabPages.Add(tabPage);
答案 1 :(得分: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);