开发者

C#之如何实现多个子窗体切换效果

目录
  • C#实现多个子窗体切换效果
  • 先来看一下主窗python体中多个小窗体切换的效果
  • 多窗体切换的原理
  • 建立多窗口切换的步骤
    • 1.新建一个主窗体并在其中放置适当的控件
    • 2.新建用于在主窗体中显示的子窗体
    • 3.设置子窗体的尺寸和panel容器的尺寸相等
    • 4.以同样的方式建立子窗体二和子窗体三
    • 5.在主窗体的代码中定义相应的三个窗口变量
    • 6.在Form1_Load函数中对三个变量进行赋值
    • 7.由于我们的窗体切换是点击相应的按钮触发的
    • 8.完成之后运行窗口
  • 总结

    C#实现多个子窗体切换效果

    C#的在主窗体中实现多个子窗体相互切换的效果主要依托于panel容器和Controls函数。

    和大家分享一下在C#的winform开发中如何实现借助一个主窗体来实现内部多个子窗体的切换效果。

    先来看一下主窗体中多个小窗体切换的效果

    C#之如何实现多个子窗体切换效果

    多窗体切换的原理

    多窗体切换的原理其实是借助一个panel容器,在该容器中显示相同大小的窗口

    建立多窗口切换的步骤

    1.新建一个主窗体并在其中放置适当的控件

    包括进行切换的按钮和显示窗体的panel容器,在这里要注意:将要显示的子窗体就是在该panel容器中显示的,

    效果如下:

    C#之如何实现多个子窗体切换效果

    2.新建用于在主窗体中显示的子窗体

    子窗体的新建其实是一个用户控件(Windows窗体),在这里我们可以在状态栏中右击选择—>添加—>用户控件(Windows窗体)

    C#之如何实现多个子窗体切换效果

    3.设置子窗体的尺寸和panel容器的尺寸相等

    目的是为了www.devze.com在panel容器中显示时不会溢出。

    在这里我们为了便于区分三个不同的子窗体,设置窗体的不同颜色,并在窗体中进行提示。

    C#之如何实现多个子窗体切换效果

    4.以同样的方式建立子窗体二和子窗体三

    C#之如何实现多个子窗体切换效果

    窗体三

    C#之如何实现多个子窗体切换效果

    5.在主窗体的代码中定义相应的三个窗口变量

            public UserControl1 f1; //创建用户控件一变量
            public UserControl2 f2; //创建用户控件二变量
            public UserControl3 f3; //创建用户控件三变量

    6.在Form1_Load函数中对三个变量进行赋值

    也就是对三个对象进行实例化

            private void Form1_Load(object sender, EventArgs e)
            {
                f1 = new UserControl1();    //实例化f1
                f2 = new UserControl2();    //实例化f2
                f3 = new UserControl3();    //实例化f3
            }

    7.由于我们的窗体切换是点击相应的按钮触发的

    所以我们要为相应的按钮控件设置触发事件。

    双击主窗体中的按钮进入相应的触发函数,在这里我们要使用如下的代码对相应的子窗体进行显示:

            //显示窗体一
            private void button1_Click(object sender, EventArgs e)
            {
                f1.Show();   //将窗体一进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(f1);    //将窗体一加入容器panel2
            }
            //显示窗体二
            private void button2_Click(object sender, EventArgs e)
            {
                f2.Show();   //将窗体二进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(fpython2);    //将窗体二加入容器panel2
            }
            //显示窗体三
            private void button3_Click(object sender, EventArgs e)
            {
                f3.Show();   //将窗体三进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(f3);    //将窗体三加入容器panel2
            }

    8.完成之后运行窗口

    点击相应的按钮,在panel2容器中就可以呈现出相应的界面。

    C#之如何实现多个子窗体切换效果

    最后附上完整源码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace window_cut
    {
        public partial class Form1 : Form
        {
            public UserControl1 f1; //创建用户控件一变量
            public UserControl2 f2; //创建用户控件二变量
            public UserControl3 f3; //创建用户控件三变量
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                f1 = new UserControl1();    //实例化f1
                f2 = new UserControl2();    //实例化f2
                f3 = new UserControl3();    //实例化f3
            }
            //显示窗体一
            private void button1_Click(object sender, EventArgs e)
            {
               android f1.Show();   //将窗体一进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(f1);    //将窗体一加入容器panel2
            }
            //显示窗体二
            private void button2_Click(object sender, EventArgs e)
            {
                f2.Show();   //将窗体二进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(fdDskgRhD2);    //将窗体二加入容器panel2
            }
            //显示窗体三
            private void button3_Click(object sender, EventArgs e)
            {
                f3.Show();   //将窗体三进行显示
                panel2.Controls.Clear();    //清空原容器上的控件
                panel2.Controls.Add(f3);    //将窗体三加入容器panel2
            }
        }
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜