如何隐藏Visual Studio 2008 Form Designer中的一个面板,如PS中的图层?否则,有人能推荐另一种更好的方法来设计必须由用户点击的多个“屏幕”吗?使用多个面板设计Windows.Form - >如何隐藏一个面板(如PS层)
4
A
回答
2
我在最近的一个项目中使用了this Wizard代码,它运行良好。
它提供了你以后的基本经验。
17
你描述的是一个向导,你可能需要调查从Eric J.
但是这种方法,当我有,我想有多个面板在我的UI在同一个空间的情况下,我想转行在设计人员之间,我喜欢使用TabControl并隐藏TabControl上的选项卡。这使得UI在设计时更容易管理,并且代码在运行时间在标签之间切换非常简单。
我做了一个自定义控件,它是从TabControl派生的名为HiddenTabsControl的非常简单的控件。该类只覆盖WndProc并让TabControl基类处理其他所有内容。所有你需要做的是:
- 添加新项目到项目
- 选择自定义控制,
- 名称它像HiddenTabsControl。
- 将基类更改为TabControl,删除构造函数和Visual Studio添加的OnPaint覆盖。
拷贝覆盖的WndProc的进级:
protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) { m.Result = (IntPtr)1; } else { base.WndProc(ref m); } }
现在你可以改变在设计选项卡,轻松地设计UI,并在代码中,你可以处理事件,需要改变标签。改变所选择的选项卡容易与完成:去除所述接片的
this.hiddenTabsControl.SelectedTab = this.tabPageYouWantVisible;
一个副作用是构造的控制中,当翼片占据的空间。删除它们会使HiddenTabsControl占用的空间缩小。我通常将HiddenTabsControl的Anchor设置为底部以防止缩小。
2
另一个不那么优雅,但快速入侵的方法是,直到运行时才将面板添加到父窗体。在这样做的过程中,设计师在编译之前不知道面板属于哪里,并且不会显示。
例如,查找的代码,你控件添加到父窗体块:
//this->Controls->Add(this->panel_X);
this->Controls->Add(this->tabControl);
this->Controls->Add(this->menuStrip_topMenu);
评论或删除语句,然后找到手感时加载的形式发生的事件:
this->Load += gcnew System::EventHandler(this, &MainForm::MainForm_Load);
然后,在事件处理程序的定义,控制添加到形式:
System::Void MainForm_Load(System::Object^ sender, System::EventArgs^ e) {
...
...
this->Controls->Add(this->panel_X);
}
我这样做并没有经历任何不必要的副作用,但如果有人有充分的理由不这样做,我会有兴趣听到它。
相关问题
- 1. 如何隐藏Wicket面板?
- 2. 如何隐藏jsFiddle面板?
- 3. 隐藏一个面板在extjs
- 4. JQuery面板隐藏
- 5. 如何在另一个类的面板中隐藏表单?
- 6. 如何阻止通知面板隐藏?
- 7. 如何显示/隐藏面板
- 8. 如何隐藏Liferay的控制面板
- 9. 如何隐藏在JavaScript中的面板
- 10. 如何隐藏dojo splitcontainer/bordercontainer的面板?
- 11. 拉丝面板设计一个房子
- 12. 上一个和下一个按钮 - 展开隐藏面板
- 13. 如何通过隐藏NetBeans IDE上的第一个面板来从一个面板切换到另一个面板
- 14. Java - 使用玻璃面板隐藏JMenuBar
- 15. 如何在一个Windows Form面板的一个Csharp面板中使用多个窗体?
- 16. 隐藏顶部面板
- 17. 隐藏部分面板C#
- 18. 隐藏ExtJS面板标题
- 19. 无法隐藏extjs面板
- 20. firefox addons面板隐藏
- 21. 如何将一个按钮从一个面板拖放到另一个面板?
- 22. 如何设计一个好的“进度面板”
- 23. 一个更新面板与多个更新面板
- 24. 如何在另一个面板中显示面板?
- 25. 如何从另一个面板更换卡布局面板?
- 26. wx.ComboBox隐藏在其他面板后面
- 27. SWT设计面板
- 28. 如何在extjs中多次隐藏和显示面板
- 29. 如何安排多个面板
- 30. 另一个面板内的面板
+1。这是一个非常简单的解决方案。您仍然可以用键盘切换标签,但(如果将焦点放在右侧,Ctrl + Tab肯定可用,箭头键)。 – Joey 2010-01-13 10:10:31
此外,您希望始终将MultiLine属性设置为“true”,否则会出现滚动标签栏的箭头,尽管您无法单击它们。 – Joey 2010-01-13 10:11:33
这种方法与Mono不兼容。 – Luca 2010-05-23 12:56:31