隐藏标签页/动态更改表单内容

时间:2015-01-07 18:41:37

标签: .net winforms tabcontrol

如何隐藏选项卡控件的选项卡以进行动态页面更改,其中表单上的所有内容都消失了,并且完全出现了新内容?

这对于向导以及左侧的那些页面设置列表非常有用,右侧的那些设置页面会在IDE中经常看到。

1 个答案:

答案 0 :(得分:0)

隐藏标签"我想在一组商品内容之间动态更改表单"

我之前有过很大的问题。有一些示例方法可以在线完成此操作,并且每个方法都有一些严重的问题。即缺乏设计时间可见性平台依赖性(仅限Windows)以及内部魔术或一些严格的子类化和重新实现什么是选项卡控件。

一种建议的方法就是吸收窗口消息以进行标签绘制。这有效,但它依赖于操作系统,看起来非常奇怪地访问像.net中那样的Windows泵。

我看到的另一个建议是从头开始构建一个制表符控件,然后才实现制表符....

解决这个问题的方法非常简单。所有这些项都可以在TabControl设计器属性中找到。

tabControl.Appearance = FlatButtons;
tabControl.SizeMode = Fixed;
tabControl.ItemSize.Width = 0;
tabControl.ItemSize.Height = 1;

多田!选项卡被隐藏。现在创建一个标签集'要隐藏和显示的动态控件,以及标准数据绑定。

为了使这一点更加用户友好(如果您正在处理大型应用程序或将其作为标准组件构建,您将经常使用)继承tabcontrol并进行设计时检查并取消设置这些值,以便您可以看到设计标签。如果您使用的是固定布局模型,那么还有其他涉及布局的问题(糟糕的不好!)

这个解决方案确实有一些警告。也就是说,您仍然可以选项卡到选项卡控件,然后更改页面。这可以通过挂钩到控件的 Enter 事件来修复,然后将焦点传递到所选选项卡中的第一个选项卡元素。

另一个问题是,如果标签控件太小,则右手边会有一个小的左/右按钮(使用左右语言时,否则左侧),这样您就可以在标签之间进行选择。我不知道该问题的解决方案。