Dialogue Enregistrer sur une autre boîte de dialogue personnalisée est un comportement étrange!

StackOverflow https://stackoverflow.com/questions/2573976

Question

J'ai enregistrer en tant que caractéristique d'image pour les graphiques dans ma demande. Le contrôle graphique est un contrôle utilisateur personnalisé avec une logique personnalisée en eux. Il a également une mise à l'échelle en fonction de la taille, zoom, etc. Cependant, tout en économisant comme une image que je voudrais donner à l'utilisateur la possibilité de définir la taille de l'image (par exemple: @ 300 px 800x600 DPI).

Pour ce faire, je l'ai créé un formulaire avec / cases à cocher, etc. zones de texte pour différents paramètres de l'image. L'une de ces zones de texte est le nom du fichier. Le champ de saisie du nom de fichier est en lecture seule et est accompagné d'un bouton de navigation qui affiche un SaveFileDialog lorsque vous cliquez dessus.

dans le menu du formulaire principal L'utilisateur clique sur « Enregistrer sous image ». Je montre le ImageExportDialog en utilisant le code ci-dessous:

using(ImageExportDialog dlg = new ImageExportDialog())
{
   if(dlg.ShowDialog() == DialogResult.OK)
   {
      //get the settings selected by the user and generate the image
   }
}

Dans le ImageExportDialog, l'utilisateur clique sur le bouton de navigation et SaveFileDialog est présenté comme suit:

using(SaveFileDialog dlg = new SaveFileDialog())
{
   if(dlg.ShowDialog() == DialogResult.OK)
   {
      txtFileName.Text = dlg.FileName;
   }
}

Maintenant, le problème est, lorsque l'utilisateur clique sur le bouton « Enregistrer » dans le SaveFileDialog, comme prévu, le txtFileName.Text est défini, mais la boîte de dialogue personnalisée parent semble également revenir à la méthode ShowDialog et DialogResult est le même que l'un pour SaveFileDialog! Le contrôle passe ensuite à la « obtenir les paramètres sélectionnés par l'utilisateur et générer l'image » une partie du code ci-dessus.

Pas vraiment sûr de ce que je fais mal ici!

Était-ce utile?

La solution

Arghhh !!!

Appris la question moi-même. Je l'avais copier-collé sur le bouton OK de la ImageExportDialog pour créer le bouton Parcourir pour le SaveFileDialog.

Devinez quoi, le bouton Parcourir avait sa propriété DialogResult réglé sur « OK »! Changement à « Aucun » résolu le problème.

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