Je fais une application dans laquelle il y a un principal Form
FormMain et un assistant Form
FormHelper. Pour comprendre, prenons l'exemple de FormMain dans lequel l'utilisateur saisit les commandes et fréquemment l'utilisateur veut ouvrir FormHelper et y remplir certaines valeurs. Lorsque la commande est enregistrée, les valeurs de FormMain sont enregistrées ainsi que FormHelper.Rouvrir un formulaire fermé qui a été montré en utilisant ShowDialog()
Ce que je ne faisais que faire le FormHelper un champ dans la définition de FormMain:
public partial class FormMain : Form
{
FormHelper BillsForm;
}
Et, dans le constructeur:
public FormReceiptNew(string ReceiptNo)
{
InitializeComponent();
BillsForm = new BillsForm();//just once
}
Supposons maintenant que l'utilisateur, tout en remplissant le FormMain, veut entrer des valeurs dans FormHelper, il/elle peut appuyer sur ALT + H et le formulaire sera montré en utilisant ShowDialog()
et quand c'est fait, l'utilisateur fermera le FormHelper, et le même processus se produira autant de fois que le FormHelper est requis .
La raison pour laquelle je veux que le même Formulaire s'ouvre plusieurs fois, c'est que l'utilisateur y remplit certaines valeurs et que je veux conserver les valeurs la prochaine fois que le FormHelper est à nouveau affiché et lorsque l'utilisateur est complètement le FormMain, les valeurs de la FormMain sera enregistrée en même temps que les valeurs de FormHelper.So lorsque l'utilisateur appuie sur ALT + H chaque fois, le code suivant ne fonctionnera pas:
BillsForm= new FormHelper();
BillsForm.ShowDialog();
car il crée une nouvelle forme et toutes les anciennes valeurs seront supprimées.
N'écrivez simplement BillsForm = new FormsHelper(), problème résolu. –
@Hanns que faire si le formulaire était précédemment fermé? Appellera à nouveau ShowDialog() sur le fera apparaître à nouveau? –
@Hans, Pouvez-vous s'il vous plaît fournir une explication de ce que vous avez écrit? –