Je vois beaucoup de pages et de questions impliquant la transmission d'une valeur d'un formulaire à un autre. Je voudrais faire quelque chose d'un peu différent. Non valeurs, mais un formulaire entier, passé en paramètre. S'il vous plaît, ce n'est pas un formulaire MDI.Passage d'un formulaire enfant complet à un autre formulaire enfant
J'ai un formulaire parent avec 2 boutons. Un bouton crée une forme Child1 entre autres choses. Un autre bouton (facultatif) appelle un éditeur de formulaire enfant différent.
Le premier bouton est un bouton de validation qui, s'il est valide, affiche le formulaire Child1 avec une liste listbox remplie de paires clé/valeur. Le second est un éditeur avec ses propres boutons. Si l'un de ces boutons (submit) est enfoncé, le premier formulaire Child1 doit être mis à jour avec un nouveau keyvaluepair.
Le problème que j'ai eu est que je n'arrive pas à obtenir le formulaire Child1 pour refléter les changements. Je ne sais pas quelle est la meilleure façon de mettre à jour ce formulaire Child1. J'ai essayé BeginUpdate avec EndUpdate, et l'actualisation et maintenant avec tous les essais, je me suis un peu perdu. J'espère que quelqu'un peut m'aider. Ce que je veux réellement faire est actualiser ChildForm1, disons que c'est une boîte de réception, quand quelque chose est "sauvé" ou ajouté du deuxième rédacteur d'enfant. Avec le bouton cliquez dans ce second éditeur de childform, le premier Childform devrait être actualisé.
formulaire parent:
public ChildForm1 MyboxofValues;
private void btn1_Click(object sender, EventArgs e)
{
MyboxofValues = new ChildForm1();
MyboxofValues.Show();
}
private void btn2_Click(object sender, EventArgs e)
{
Editor myEditor = new Editor();
myEditor.Show();
}
ChildForm1:
public ChildForm1()
{
InitializeComponent();
updateMe();
}
public void updateMe()
{
listView1.Items.Clear();
if (MainCode.subRows.Count > 0)
{
foreach (KeyValuePair<string, string> element in MainCode.subRows)
{
ListViewItem lvi = new ListViewItem(element.Value);
lvi.SubItems.Add(element.Key);
listView1.Items.Add(lvi);
}
}
}
EditorForm:
private ChildForm1 originalForm = new ChildForm1();
private void btnSubmit_Click(object sender, EventArgs e)
{
originalForm.updateMe();
}
Je suis sûr qu'il est très facile, mais je ne peux pas l'obtenir. Si quelqu'un peut l'aider serait apprécié, économisez-moi des heures! S'il y a une meilleure façon de mettre à jour avec les résultats de soumission qui est aussi bien, s'il vous plaît montrer un exemple?
À des fins de test, j'ai créé un bouton «actualiser» pour le ChildForm1, qui fonctionne! (Il appelle juste le updateMe() en fait.Il est donc quelque chose wierd je pense comme que je crée une nouvelle instance du formulaire et en essayant de changer cette forme nonexisting (null) au lieu de l'actuelle ChildForm1. de la Form Editor.
Est-ce le bon lien? Je ne vois rien à propos de MVP – SuusvdVen