问题描述
|
我正在制作一个应用程序,其中有一个主
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完成操作时保留这些值。 FormMain中的值将与FormHelper中的值一起保存。因此,当用户每次按ALT + H时,以下代码将不起作用:
BillsForm= new FormHelper();
BillsForm.ShowDialog();
因为它正在创建一个新表单,所有旧值都将被删除。
解决方法
在您的主表单中,存储对帮助表单的引用。
您一次实例化帮助程序窗体(例如onLoad),并继续在同一对象上调用showDialog()。两次调用之间应保留所有字段。
, 如果要在关闭后将这些值存储在主窗体中,则可以在创建时通过构造函数或setter将这些值发送回FormHelper。从您的问题看来,您已经要存储要保留在主表单中的那些值,因此在创建时设置它们就不是问题。