2010-04-04 6 views
0

J'ai une sauvegarde en tant que fonction d'image pour les graphiques dans mon application. Le contrôle de graphique est un contrôle utilisateur personnalisé avec une logique personnalisée. Il a également une mise à l'échelle basée sur la taille, le zoom, etc. Cependant, en les sauvegardant en tant qu'image, je voudrais donner à l'utilisateur la possibilité de définir la taille de l'image (par exemple: 800x600 px @ 300 DPI).Enregistrer la boîte de dialogue au-dessus d'une autre boîte de dialogue personnalisée se comporte bizarrement!

Pour ce faire, j'ai créé un formulaire avec des zones de texte/cases à cocher, etc pour différents paramètres pour l'image. Un de ces TextBoxes est pour le nom de fichier. La zone de texte du nom de fichier est en lecture seule et est accompagnée d'un bouton de navigation qui affiche un fichier SaveFileDialog lorsque vous cliquez dessus.

L'utilisateur clique sur "Enregistrer comme image" dans le menu principal du formulaire. 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 le 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 attendu le txtFileName.Text est défini, mais la boîte de dialogue personnalisée parente semble également renvoyer de la méthode ShowDialog et le DialogResult est le même que celui de SaveFileDialog! Le contrôle passe ensuite à la "obtenir les paramètres sélectionnés par l'utilisateur et générer l'image" partie du code ci-dessus.

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

Répondre

0

Arghhh !!!

J'ai trouvé le problème moi-même. J'ai copié-collé le bouton OK de ImageExportDialog pour créer le bouton Parcourir pour SaveFileDialog.

Devinez quoi, le bouton Parcourir avait sa propriété DialogResult définie sur "OK"! Le changement à "Aucun" a résolu le problème.

+0

Marquer comme la réponse! :) –