c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?相关的知识,希望对你有一定的参考价值。

如何做到不清除控件就能在panel2中打开一个窗体呢?我在设计中添加了一个splitContainer控件希望在panel1中设置按钮,panel2中打开相应按钮的界面。我在panel2中本来设置了有登陆用户名登陆时间等控件的;现在我有这样的问题了:
panel1中有个按钮是修改密码:这个按钮的代码是
splitContainer1.Panel2.Controls.Clear();
frmChangePwd obj = new frmChangePwd();//清除控件
obj.MdiParent = this;
obj.Parent = splitContainer1.Panel2;
obj.Show();
点击这个按钮后确实打开了我想要的修改密码窗体并在panel2中显示,但我在修改密码窗体中设置了返回按钮想要返回到最初的panel2的样子(就是有登陆用户名登陆时间等控件的)但由于frmChangePwd obj = new frmChangePwd();//清除控件这句话清楚了我之前设计的那些控件所以pannel2变成了空白。
如何做才能是点击返回之后能回到原来的样子呢?
初学者 很多东西不懂,希望有人能从浅显的角度帮我解答, 非常感谢!!

有很多方法可以实现,说两种
1.frmChangePwd 改用用户控件
2.用页签,隐藏页签的头部。追问

对不起我是新手 很多控件都还没有用过,你是说不再使用splitContainer控件了? 还是说frmchangepwd不用窗体实现用页签来实现?

追答

splitContainer还是留着把。

对.我写个例子给你。你等等。

追问

好的

追答

你看看把。你的是用vs多少的。我用的是2012的,你可能不能直接打开工程,

如果打不开你就把cs文件复制到你的工程

追问

    你好 我已经照着你的方法做了 把两个窗体改成了用户控件 但是有个地方要异常就是this.ucChangePassword1.OnCanceled += ucChangePassword1_OnCanceled;(未将对象引用设置到对象的实例。)

  然后我在你的from2设计器里看到


后来我发现原来要自己添加控件

但是问题又出来了

我设置好了控件 但是在设计器里new时候就说

错误7类型“frmLogin.frmLogin”中不存在类型名称“  这里不知道怎么会new不成功?

参考技术A 可以定义多个自定义控件,点击不同的按钮时,将你需要显示的自定义控件填充至你的panel2中

C# 中关于重载与重写的区别及用法

1、重载(overload): 在同一个作用域(一般指一个类)的两个或多个方法函数名相同,参数列表不同的方法叫做重载,它们有三个特点(俗称两必须一可以):

  • 方法名必须相同
  • 参数列表必须不相同
  • 返回值类型可以不相同

例如:

public void Sleep()

    Console.WriteLine("Animal睡觉");

public int Sleep(int time)

    Console.WriteLine("Animal0点睡觉", time);
    return time;


2、重写(override):子类中为满足自己的需要来重复定义某个方法的不同实现,需要用 override 关键字,被重写的方法必须是虚方法,用的是 virtual 关键字。它的特点是(三个相同):

  • 相同的方法名
  • 相同的参数列表
  • 相同的返回值

如:父类中的定义:

public virtual void EatFood()

    Console.WriteLine("Animal吃东西");

子类中的定义:

public override void EatFood()

    Console.WriteLine("Cat吃东西");

以上是关于c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?的主要内容,如果未能解决你的问题,请参考以下文章

C# 怎么调整splitcontainer中间分割线的位置

C# WinForm的SplitContainer控件固定Panel大小

C# splitContainer1 调整子控件大小

c#中关于repeater控件的说法

C# 中关于重载与重写的区别及用法

在 SplitContainer 中关闭 mdi 子项