J'ai créé un bouton sur un formulaire pour lequel j'ai défini une valeur de retour par programme, voir ci-dessous. Tout d'abord, est le gestionnaire d'événements psudocode, suivi de l'endroit où le résultat de la boîte de dialogue est retourné.Résultat de la boîte de dialogue Définir la valeur de retour
Il existe une propriété par défaut dans laquelle vous pouvez définir le comportement de retour d'un bouton dans l'interface utilisateur, c'est-à-dire le comportement Résultat de la boîte de dialogue. Dans mon code complet, je ne vois pas où le retour de ce bouton est défini ou modifié. Lorsque vous testez (en mode débogage) la première fois que le gestionnaire d'événements buttonSaveSet_Click est utilisé pendant l'exécution du code, la valeur du résultat de la boîte de dialogue retournée est "Annuler" malgré le fait que j'ai cliqué sur le bouton "Définir". Cependant, la deuxième fois que j'exécute la fonction, en appuyant sur le même bouton, le résultat de la boîte de dialogue est renvoyé comme "Oui".
Il semble qu'il y ait un autre endroit où le résultat de la boîte de dialogue est en cours de modification, et je place cette valeur à l'emplacement incorrect.
psudo code
private void buttonSaveSet_Click(object sender , EventArgs e)
{
setChars = new setChars();
//set the dr to yes.
buttonSaveSet.DialogResult = DialogResult.Yes;
// set the charCount
// set the rowCount
if (conditional statement is true)
{
//return values;
}
else
{
//return nothing;
}
Close();
}
lieu de retour:
try
{
DialogResult dResult = setValPopup.ShowDialog();
SetChars sc = setValPopup.setChars;
int max;
if (dResult == DialogResult.Yes)
{
if (sc.set == true)
{
//do other work
}
}
}
Les boutons DialogResult sont copiés dans form.DialogResult avant que OnClick ne soit exécuté après. Le changer dans l'événement avant de fermer le formulaire est trop tard. Essayez de définir form.DialogResult not button.DialogResult. – Ralf