Question

Je fais une application dans laquelle il y a une principale Form FormMain et une aide Form FormHelper.

Pour comprendre, prendre un exemple dans FormMain l'utilisateur est en tapant les commandes et souvent l'utilisateur veut ouvrir le FormHelper et remplir certaines valeurs en elle.

Lorsque la commande est enregistrée, les valeurs FormMain sont enregistrées ainsi que FormHelper.

Ce que je faisais était 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
    }

Maintenant, supposons 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 affiché à l'aide ShowDialog() et quand il est fait, l'utilisateur fermera la FormHelper, et le même processus se produira pour autant de fois FormHelper est nécessaire.

La raison pour laquelle je veux le même formulaire pour ouvrir plusieurs fois, est que l'utilisateur remplit certaines valeurs et je veux persister les valeurs la prochaine fois que l'FormHelper s'affiche à nouveau et lorsque l'utilisateur se fait entièrement à la FormMain, les valeurs du FormMain seront enregistrés en même temps que les valeurs 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.

Était-ce utile?

La solution

Dans votre principale forme, stocker une référence à la forme d'aide. Vous instancier la forme d'aide une fois (onLoad par exemple) et continuer à appeler showDialog () sur ce même objet. Tous les champs doivent être conservés entre les appels.

Autres conseils

Si vous deviez stocker ces valeurs dans la principale forme après la fermeture, vous pouvez envoyer ces valeurs à la FormHelper lors de la création soit par le constructeur ou setters. A partir de votre question, il semble déjà que vous allez être stocker ces valeurs que vous voulez persister dans la principale forme, afin de les mettre à la création ne devrait pas être un problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top