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不成功?
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中打开一个窗体呢?的主要内容,如果未能解决你的问题,请参考以下文章