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,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?