当前位置: 首页 > 编程笔记 >

C# Winform选项卡集成窗体详解

葛深
2023-03-14
本文向大家介绍C# Winform选项卡集成窗体详解,包括了C# Winform选项卡集成窗体详解的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了C# Winform选项卡集成窗体的具体代码,供大家参考,具体内容如下

知识要点:利用反射动态的加载窗体到对应的TabPage的。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MDITest
{
  public partial class MainForm : Form
  {
    public MainForm()
    {
      InitializeComponent();
    }

    public int[] s = { 0, 0, 0 };//用来记录窗体是否打开过

    private void MainForm_Load(object sender, EventArgs e)
    {
      //默认加载CNC窗体
      string formClass = "MDITest.CNC";
      GenerateForm(formClass, tabControl1);
    }

    public void GenerateForm(string form,object sender)
    {
      //反射生成窗体
      Form fm = (Form)Assembly.GetExecutingAssembly().CreateInstance(form);
      //设置窗体没有边框,加入到选项卡中
      fm.FormBorderStyle = FormBorderStyle.None; 
      fm.TopLevel = false; 
      fm.Parent = ((TabControl)sender).SelectedTab; 
      fm.ControlBox = false; 
      fm.Dock = DockStyle.Fill; 
      fm.Show();
      s[((TabControl)sender).SelectedIndex] = 1; 
    }

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
      //只生成一次
      if(s[tabControl1.SelectedIndex]==0)
      {
        btn_Click(sender,e);
      }
    }
    
     /// <summary> 
    /// 通用按钮点击选项卡 在选项卡上显示对应的窗体 
    /// </summary> 
    private void btn_Click(object sender,EventArgs e)
    {
      string formClass=((TabControl)sender).SelectedTab.Tag.ToString();
      GenerateForm(formClass, sender);
    }


  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍浅谈C# winForm 窗体闪烁的问题,包括了浅谈C# winForm 窗体闪烁的问题的使用技巧和注意事项,需要的朋友参考一下 在构造函数里加上以下代码: 以上这篇浅谈C# winForm 窗体闪烁的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C# Winform 子窗体访问父级窗体的控件和属性,包括了C# Winform 子窗体访问父级窗体的控件和属性的使用技巧和注意事项,需要的朋友参考一下 今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了new 父窗体().textBox.text;来进行值传递,然而并无卵用,经过多次试验,找到了一个比较简

  • 我正在学习本教程中的示例。根据教程,我想在两个选项卡之间拖动选项卡。到目前为止,我设法创建了这段代码,但我需要一些帮助才能完成代码。 来源 将选项卡的内容作为对象插入的正确方法是什么?简单的文本被转移到教程中。我必须如何修改这行< code>content.put(DataFormat。PLAIN_TEXT,tab pane);? 拖动选项卡后插入选项卡的正确方法是什么: 目的地 我想这个转移可以

  • 我想使用 上的按钮调整 上的按钮大小。 这是我的代码,它给了我一个错误: 它在 .. 处有一个错误。我把我的公开了,所以可以访问它。但它仍然给我错误“Form2.button8由于其保护级别而无法访问”。 这是我在form2的按钮8 public void button8_Click(object sender, EventArgs e) { } 我该如何解决这个问题?

  • 本文向大家介绍WinForm单例窗体用法实例,包括了WinForm单例窗体用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WinForm单例窗体。分享给大家供大家参考,具体如下: 调用如下: 不带参数的构造函数 带参数的构造函数 更多关于C#相关内容感兴趣的读者可查看本站专题:《WinForm控件用法总结》、《C#窗体操作技巧汇总》、《C#常见控件用法教程》、《C#程序设计之线程使

  • 本文向大家介绍WinForm窗体间传值的方法,包括了WinForm窗体间传值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WinForm窗体间传值的方法。分享给大家供大家参考。具体实现方法如下: 窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式:   1.公共静态变量; 2.使用共有属性; 3.使用委托与事件; 4.通过构造函数把主窗体传递到从窗体中;