Pannel中的窗体跳转(C#的Winform)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pannel中的窗体跳转(C#的Winform)相关的知识,希望对你有一定的参考价值。

目前我有个主窗体frm_main,窗体中有pannel1控件,控件中加载的窗体为frm1,加载控件没问题,现在的情况是我想在frm1上添加一个button按钮,然后点击按钮实现pannel1中的窗体跳转到frm2,就是将pannel1中的窗体变换为frm2,求大神,求代码。

1)FormMain.cs

后台代码 FormMain.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1

    public partial class FormMain : Form
    
        public FormMain()
        
            InitializeComponent();
        

        // 主窗体启动时,在panel中先显示Form1
        private void FormMain_Load(object sender, EventArgs e)
        
            Form1 f1 = new Form1(this);
            f1.TopLevel = false;
            panel1.Controls.Add(f1);
            f1.Show();
        
        // 添加一个pubilc 方法:在panel中显示Form2
        public void ShowForm2()
        
            Form2 f2 = new Form2();
            f2.TopLevel = false;
            panel1.Controls.Add(f2);
            f2.Show();
        
    

2)Form1

后台代码 Form1.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1

    public partial class Form1 : Form
    
        public Form1()
        
            InitializeComponent();
        

        FormMain frmMain;
        
        // 添加一个构造函数,传入 FormMain 
        public Form1(FormMain frmMain)
            : this()
        
            this.frmMain = frmMain;
        
        
        // 关闭Form1,显示Form2
        private void button1_Click(object sender, EventArgs e)
        
            this.Close();
            frmMain.ShowForm2();
        
    

3)Form2,没有任何改变

using System.Windows.Forms;

namespace WindowsFormsApplication1

    public partial class Form2 : Form
    
        public Form2()
        
            InitializeComponent();
        
    

4)运行

点击按钮后

参考技术A 面板上还可以放窗体?还是我理解错了?

用C# winForm,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?

label事件太多 如果要在每个label上写太麻烦了啊

1.捕捉Label的点击事件然后直接调用panel的事件处理函数;
2.或重写Panel控件为自己的,捕捉label的事件然后调用基类的 OnClick。
参考技术A label的点击事件中pannel.click+=然后按2下Tab键,这个是点击label触发pannel的点击事件,要触发其他事件也是一样的方法 参考技术B pannel_click(NULL,NULL);
可以执行pannel对应的那个click事件

以上是关于Pannel中的窗体跳转(C#的Winform)的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform中如何实现窗体之间的跳转

C# WinForm splitContainer 问题

C# Winform 登陆窗体跳转到主窗体,登陆窗体隐藏

C# winform panel 画笔初始化问题

用C# winForm,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?

c# winform scroll 滚动条 滚动到底