C# 利用TabControl控件制作多窗口切换

这篇具有很好参考价值的文章主要介绍了C# 利用TabControl控件制作多窗口切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TabControl控件切换时触发的事件

选项卡切换触发的是TabControl控件的SelectedIndexChanged事件。
当TabControl控件的任何一个TabPage被点击或选择,即发生SelectedIndexChanged事件事件。
代码如下:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
       {
            if (tabControl1.SelectedIndex == 0)//也可以判断tabControl1.SelectedTab.Text的值
            {
                //执行相应的操作
                tabPageSubject.Parent = tabControlExtract;//显示
            }
            else if (tabControl1.SelectedIndex == 1)
            {
                //执行相应的操作
                tabPageSubject.Parent = null;   //隐藏选项卡tabPageSubject
            }
        }

C# 利用TabControl控件制作多窗口切换

怎样判断 tabPage1 正在被选中 还是tabPage2 被选中?

 if (tabControl1.SelectedTab == tabPage1)
{
}
else
{
}

switch(tabControl1.SelectedTab)
{
     case tabPage1:
             //选择了tabPage1;
             break;
     case tabPage2:
              //选择了tabPage1;
              break;
     default:
              //选择了其他的tabPage
              break;
}

tabControl1.SelectedTab.Text.ToString()选项卡的名字
tabControl1.SelectedTab 可以获取选中的TabPage对象。
tabControl1.SelectedIndex 可以获取选中的TabPage对象的索引号。

实现伪切换窗口效果

1、添加 tabControl 控件、两个按钮控件;
C# 利用TabControl控件制作多窗口切换

2、代码如下:

		public TabPage[] tabpagebuf = new TabPage[4];
		//放到 Form1_Load 中调用
        public void Init_tabpagebuf()
        {
            tabpagebuf[0] = tabPage10;
            tabpagebuf[1] = tabPage11;
            tabpagebuf[2] = tabPage12;
            tabpagebuf[3] = tabPage13;

        }
        byte page_ix = 0;
        //上一步
        private void button13_Click(object sender, EventArgs e)
        {
            if(page_ix == 0)
            {
                page_ix = 3;
            }
            else
            {
                page_ix--;
            }
            tabControl4.SelectedTab = tabpagebuf[page_ix];
        }
        //下一步
        private void button12_Click(object sender, EventArgs e)
        {
            page_ix = (byte)((page_ix + 1) % 4);
            tabControl4.SelectedTab = tabpagebuf[page_ix];
        }

隐藏顶部的tab标签,及tabcontrol的边框线

处理tabcontrol控件,隐藏顶部的tab标签,及tabcontrol的边框线
隐藏顶部的tab标签

1、把TabPage的属性中将Text清空 。
2、选中TabControl,将属性SizeMode改为Fixed,
3、将属性:ItemSize设为0,1
4、将属性:TabStop,修改为fasle
以上四步,基本完美解决了,但左上角还是有遗留点。
5、将如下代码复制粘贴到form的load事件中,其中 tabControl1、tabPage1 改为自己的 tabControl 控件名字 (甚至可以直接只进行这一步)

this.tabControl1.Region = new Region(new RectangleF(this.tabPage1.Left, this.tabPage1.Top, this.tabPage1.Width, this.tabPage1.Height));

到了这里,已经实现完美隐藏,但若想要实现边框线,可以选中 tabControl4 -> Tabpages 将 BorderStyle改为 FixedSingle
C# 利用TabControl控件制作多窗口切换

C# 利用TabControl控件制作多窗口切换C# 利用TabControl控件制作多窗口切换

隐藏边框线
1、自定义tabcontrol的集成类

public class CoverTabControl : TabControl
    {
        /// <summary>
        /// 解决系统TabControl多余边距问题
        /// </summary>
        public override Rectangle DisplayRectangle
        {
            get
            {
                Rectangle rect = base.DisplayRectangle;
                return new Rectangle(rect.Left - 4, rect.Top - 4, rect.Width + 8, rect.Height + 8);
            }
        }
    }

2、找到xxxx.design.cs文件
修改: this.tabControl1 = new System.Windows.Forms.TabControl();
为:this.tabControl1 = new CoverTabControl() ;
效果
C# 利用TabControl控件制作多窗口切换文章来源地址https://www.toymoban.com/news/detail-494463.html

到了这里,关于C# 利用TabControl控件制作多窗口切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# wpf 实现任意控件(包括窗口)更多调整大小功能

    第一节 Grid内控件拖动调整大小 第二节 Canvas内控件拖动调整大小 第三节 窗口拖动调整大小 第四节 附加属性实现拖动调整大小 第五章 拓展更多调整大小功能(本章) 上一章我们已经实现了任意控件统一的拖动调整功能,能够方便的给任意控件设置拖动调整大小。开发过程

    2024年01月18日
    浏览(41)
  • [WPF]原生TabControl控件实现拖拽排序功能

    在UI交互中,拖拽操作是一种非常简单友好的交互。尤其是在ListBox,TabControl,ListView这类列表控件中更为常见。通常要实现拖拽排序功能的做法是自定义控件。本文将分享一种在原生控件上设置附加属性的方式实现拖拽排序功能。 该方法的使用非常简单,仅需增加一个附加属

    2024年02月08日
    浏览(44)
  • 在VS里使用C#制作窗口应用

    创建项目的时候搜索net,选择这个。 打开应该是这样 选择公共控件 - PictureBox - 拖入Form 在Image处选择上传本地资源,建议上传一个小一点的图片。 修改一下尺寸。 ctrl+s 保存 从“属性”切换到“事件” 双击Click事件,进入代码编辑 这段代码可以理解为生命周期的开始,即在

    2024年02月22日
    浏览(43)
  • 【UE5】蓝图UI控件菜单锚(Menu Anchor)的使用与浮动详情窗口的制作

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 最近在做毕设,一直在苦恼要怎么精准地把浮动的详情窗口放在图标的一边,就比如下图中的效果 本来也有想过直接获取控件在屏幕上的位置来计算浮动窗口的生成位置,但神奇的是蓝图似乎没有这个

    2024年02月11日
    浏览(65)
  • C#利用Costura.Fody制作绿色单文件程序(含多个Dll)合并成一个Exe)

    开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了。这样交给用户很不方便,希望的效果是直接交付一个exe文件。 这时候就需要借助一款名为Fody.Costura的插件。Fody.Costura是一个Fody框架下的插件,可通过Nuget安装到VS工程中。安装

    2024年02月09日
    浏览(60)
  • 【Selenium】切换/窗口切换

    其中,frame_reference可以是: frame元素的Id属性 frame元素的name属性 frame对应的WebElement对象 打开网址:https://cdn2.byhy.net/files/selenium/sample2.html,输出下图中所有的animal对象,然后点击“外部按钮“。 参数handle:操作窗口的句柄 WebDriver对象有 window_handles 属性,这是一个列表对象,

    2024年02月05日
    浏览(52)
  • selenium窗口切换和关闭指定窗口

    但有一个问题就是它会默认关闭新打开的窗口而且close函数无法传入其他参数 那么该如何关闭其他窗口呢?以某度网站为例 点击百度图标打开另一窗口 使用如下代码进行关闭 会发现新窗口被关闭,如图一所示    将代码改成这样,就能做到关闭指定窗口的操作,效果如下

    2024年02月11日
    浏览(34)
  • 【wxWidgets】使用布局控件进行窗口布局

    窗口布局基础 为了在各种环境中都能使窗口拥有合适的位置和大小,可能需要在OnSize事件中计算每一个窗口的大小并设置新位置,当然使用窗口布局控件可以更方便地实现 如果选择使用布局控件,可以通过自己编写或者使用工具来创建,也可以使用XRC文件布局的定义保存在

    2024年02月16日
    浏览(36)
  • selenium多窗口、多iframe切换、alert切换

    场景: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这种情况下,需要识别多标签或窗口的情况。 操作方法: switch_to.window()方法:切换窗口。可以实现在不同的窗口之间切换。current_window_handle:获得当前窗口句柄。

    2024年02月07日
    浏览(43)
  • 如何使用 WPF 用户控件关闭父窗口

    How to close parent windows using WPF User Control 如何使用 WPF 用户控件关闭父窗口 【问题描述】 假设有两个WPF窗口:window1和window2。 window1有一个按钮,单击此按钮将打开window2。window2包含一个用户控件。此用户控件有一个用于关闭window2的按钮。 怎样才能实现这个场景呢? 【解决方案

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包