Oti*_*iel 27
启用/禁用
在tabPage.Enabled似乎是做工精细,但被标记为"未使用":
此API支持.NET Framework基础结构,不能直接在您的代码中使用.
该成员对此控件没有意义.
因此,您应该通过禁用选项卡中的每个控件来禁用选项卡页面.例如,见这个.
显示隐藏
有一个现有的 tabPage.Visible财产,但似乎没有任何影响.此外,它还标记为"不使用",并且msdn建议从选项卡控件中删除选项卡页面以隐藏它:
// Hide the tab page
tabControl.TabPages.Remove(tabPage1);
// Show the tab page (insert it to the correct position)
tabControl.TabPages.Insert(0, tabPage1);
Run Code Online (Sandbox Code Playgroud)我也有这个问题.tabPage.Visible未按前面所述实现,这是一个很好的帮助(+1).我发现你可以覆盖控件,这将起作用.有点necroposting,但我想在这里为别人发布我的解决方案......
[System.ComponentModel.DesignerCategory("Code")]
public class MyTabPage : TabPage
{
private TabControl _parent;
private bool _isVisible;
private int _index = int.MinValue;
public new bool Visible
{
get { return _isVisible; }
set
{
if (_parent == null) _parent = this.Parent as TabControl;
if (_parent == null) return;
if (_index < 0) _index = _parent.TabPages.IndexOf(this);
if (value && !_parent.TabPages.Contains(this))
{
if (_index > 0 && _index < _parent.TabPages.Count) _parent.TabPages.Insert(_index, this);
else _parent.TabPages.Add(this);
}
else if (!value && _parent.TabPages.Contains(this)) _parent.TabPages.Remove(this);
_isVisible = value;
base.Visible = value;
}
}
protected override void InitLayout()
{
base.InitLayout();
_parent = Parent as TabControl;
}
}
Run Code Online (Sandbox Code Playgroud)
您可能会错过显而易见的事实,因为以下任何一项都不会删除/更改选项卡的外观
tabPage1.Enabled = false; // this disables the controls on it
tabPage1.Visible = false; // this hides the controls on it.
Run Code Online (Sandbox Code Playgroud)
不要从顶部的列表中删除选项卡.
小智 5
//Move&Add is not good answer
this.tabPage1.Parent = null; // hide
this.tabPage1.Parent = this.tabControl1; //show
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78603 次 |
| 最近记录: |