c# 一个窗体继承另一个窗体的panel

我想在form2中控制form1中panel的显示和关闭。。。... 我想 在form2中控制form1中panel的显示和关闭。。。 展开
 我来答
sniper2003
2011-12-21 · TA获得超过1882个赞
知道小有建树答主
回答量:775
采纳率:100%
帮助的人:661万
展开全部
具体的代码我已经很久没写了,以前都是作为练习教给别人的昌档。

但是可以大概给你个实现的流程,一级做winform窗体间数据交互的一些原则。
1、设计一个接口,该接口中只有一个可读的属性:
Panel Pnl{get;}
2、让你的form1实现这个接口,并在get方法中返回这个panel的引用
3、将form1以这个接口的引用传递给form2
4、在form2中获取到接口对象的引用,并操作这个panel

或许你会问,怎么这么麻烦,直接把form1传过来不就行了吗?
是的,你完全可以这样做,但是要记得,如果你尝试这样做了,那么你将得到的结果将是可怕的。当你的业务越来越复杂时,对于form1的更改也将越来越多,这可能导致任何一个其绝运他的更改都可能影响到你之前的业务代码。造成时间效率上的浪费。

上面的实现是一个简单的代理模式,主要是用于隐藏本体,并传递给自身的一个替代耐宏乱品给使用者,从而达到让使用者只了解到他业务需要的对象,而不是全部。

同样的,在多个窗体进行数据交互中,可以使用观察者模式(个人比较青睐)。
追问
可以简写几句代码不?才学习没多久的新手
追答
接口:
public interface IMyPanel{
Panel Pnl{get;}
}

//form1
public class form1:Form,IMyPanel{
public Panel Pnl{get{ return this.Panel1;}}//这块返回的就是你窗体中的那个panel的引用
}

//定义的form2
public class Form2:Form{
public IMyPanel MyPanel{get;set;}
}

//在form1中调用form2
private void ShowForm2(){
Form2 form2 = new Form2();
form2.MyPanel = this.Pnl;
form2.Show()
}
风声正乱
2011-12-21 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:165万
展开全部
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
_form = this;
}

private static Form1 _form;

public static Form1 getInstance()
{
if (_form == null)
{
_form = new Form1 ();
}

return _form;
}

public void OpenorClosePanel()
{
this.panel1.Visible = this.panel1.Visible ?false :true;
}

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Show();
}
}

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

private void button1_Click(object sender, EventArgs e)
{
Form1 frm = Form1.getInstance();
frm.OpenorClosePanel();
}
}
楼上的回答不脊粗错,不过针对这桥野槐里完全可以开放一个方敏友法给对方操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三月雨滴_
2011-12-21 · TA获得超过606个赞
知道小有建树答主
回答量:484
采纳率:57%
帮助的人:203万
展开全部
你在扰歼form2 中new一个form1 并show出桐李敏来,你的form1的panel要局枝设置为public的,在form2中form1.panel.visible=true or false 就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式