加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winforms – 使用多个面板设计Windows.Form – >如何隐藏一个

发布时间:2020-12-14 02:14:43 所属栏目:Windows 来源:网络整理
导读:如何在Visual Studio 2008表单设计器中隐藏一个面板,如PS中的图层?否则,有人可以推荐另一种更好的方法来设计必须由用户点击的多个“屏幕”吗? 解决方法 您描述的是一个向导,您可能想要从 Eric J.开始研究该方法 但是,当我想要在我的UI中的同一空间中有多个
如何在Visual Studio 2008表单设计器中隐藏一个面板,如PS中的图层?否则,有人可以推荐另一种更好的方法来设计必须由用户点击的多个“屏幕”吗?

解决方法

您描述的是一个向导,您可能想要从 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,并在代码中处理事件以根据需要更改选项卡.更改Selected选项卡很容易完成:

this.hiddenTabsControl.SelectedTab = this.tabPageYouWantVisible;

移除标签的一个副作用是在构造控件时标签占据的空间.删除它们会使HiddenTabsControl占用的空间通过缩小来改变.我通常将HiddenTabsControl的Anchor设置为bottom以防止收缩.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读