我正在创建一个应用程序,其中有一个主Form
FormMain和一个助手Form
FormHelper。
为了理解,举一个例子,在FormMain中用户输入订单,并且用户经常打开FormHelper并填写其中的一些值。
保存订单时,FormMain中的值和FormHelper一起保存。
我所做的是使FormHelper成为FormMain定义中的一个字段:
public partial class FormMain : Form
{
FormHelper BillsForm;
}
并且,在构造函数中:
public FormReceiptNew(string ReceiptNo)
{
InitializeComponent();
BillsForm = new BillsForm();//just once
}
现在假设用户在填写FormMain时想要在FormHelper中输入一些值,他/她可以按ALT + H并使用ShowDialog()
显示表单,一旦完成,用户将关闭FormHelper,同样的过程将发生在需要FormHelper的次数。
我希望同一个Form多次打开的原因是用户正在填充其中的某些值,我希望在下次再次显示FormHelper时以及当用户完全使用FormMain,当用户每次按下ALT + H时,FormMain中的值将与FormHelper.So中的值一起保存,以下代码将不起作用:
BillsForm= new FormHelper();
BillsForm.ShowDialog();
因为它正在创建一个新表单,所有旧值都将被删除。
答案 0 :(得分:0)
如果要在关闭后将这些值存储在主窗体中,则可以在创建时通过构造函数或setter将这些值发送回FormHelper。从您的问题来看,听起来您已经将要存储的那些值存储在主窗体中,因此在创建时设置它们应该不是问题。
答案 1 :(得分:0)
在主窗体中,存储对辅助窗体的引用。 您实例化一次帮助器表单(例如onLoad)并继续在同一个对象上调用showDialog()。应在呼叫之间保留所有字段。