2011-08-23 90 views
0

当我需要从一种形式的一些信息传递给另一个我通常做到以下几点:沟通表单的最佳做法是什么?

Form2 form = new Form2(this); 
form.ShowDialog(); 

而且里面Form2.cs,我使用像一个构造函数:

private Form1 parent; 
public Form2(Form1 form) 
{ 
    ... 
    parent = form; 
} 

这样我可以只有在textbox1不是Form1中的私有成员时,才能从文本框获取信息,并执行parent.textbox1.Text。好的,很多时候我需要获取有关Form1中控件的信息,是否应该为Form2中所需的控件的每个属性设置setter和getters?例如:我需要知道Text,ReadOnly和Location的值。我应该为这些属性中的每一个设置setter和getters吗?是否使用内部修饰符是一种不好的做法?

+0

是Form2拉的信息或是Form1推它 –

回答

0

由于这不是我可以告诉的可重用框架,我不会围绕控件属性创建包装属性。

如果有什么需要灵活的关于这个父窗体,那么适当的过程可能是使用一个接口来指定特定的控件存在或一个特定的基本窗体类。

1

由于我不允许将注释添加到答案中,所以我将添加该注释。

从接受的答案链接的博客文章没有意义给我(可能只是因为我对代表的透彻理解不够)。

如果下一列直插形式frmDestination具有可公开访问的setter方法(SetCustomerID(string strCustID)),那么为什么你需要传递到委托时,你可以通过customerID直接给setter?

我注意到他提到

基本上,所设置的委托方法中的成员变量将被执行Form_Load事件之前填充。如果您注意到在进行frmDestination.Show()调用之前执行委托调用。这样,您就可以在Form_Load处理中执行该变量。

dest.Show()之前只会打电话dest.SetCustomerID(customerID)不是做同样的事吗?

相关问题