/ / Uložiť dialóg v hornej časti iného vlastného dialógového okna sa správa čudne! - c #, winforms, savefiledialog, showdialog

Uložiť dialógové okno nad ďalším vlastným dialógom sa správa zvláštne! - c #, winforms, savefiledialog, showdialog

Mám funkciu uloženia ako obrázok pre moje mapyaplikácie. Ovládací prvok grafu je užívateľský ovládací prvok s vlastnou logikou. Má tiež určité škálovanie na základe veľkosti, zväčšenia atď. Pri ich ukladaní ako obrázka by som však používateľovi mal dať možnosť nastaviť veľkosť obrázka (napr .: 800 x 600 px @ 300 DPI).

Za týmto účelom som vytvoril formulár stextové polia / zaškrtávacie políčka atď. na rôzne nastavenia obrázka. Jedným z týchto textových polí je názov súboru. Textové pole s názvom súboru je iba na čítanie a je sprevádzané tlačidlom prehľadávania, ktoré po kliknutí na tlačidlo SaveFileDialog zobrazí SaveFileDialog.

Používateľ klikne na ponuku „Uložiť ako obrázok“ v hlavnej ponuke. Zobrazím ImageExportDialog pomocou nižšie uvedeného kódu:

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

V ImageExportDialog používateľ klikne na tlačidlo Prehľadávať a SaveFileDialog sa zobrazí nasledovne:

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

Teraz je problém, keď používateľ klikne naTlačidlo „Uložiť“ v SaveFileDialog, ako sa očakávalo, je nastavené txtFileName.Text, ale zdá sa, že sa tiež vracia rodičovské vlastné dialógové okno z metódy ShowDialog a DialogResult je rovnaký ako ten pre SaveFileDialog! Kontrola potom prejde na „získajte nastavenia vybrané používateľom a vygenerujte obrázok"časť vyššie uvedeného kódu.

Nie som si celkom istý, čo tu robím zle!

odpovede:

0 pre odpoveď č. 1

Arghhh !!!

Zistil som problém sám. Skopíroval som vložené tlačidlo OK ImageExportDialog, aby som vytvoril tlačidlo Browse (Prehľadávať) pre SaveFileDialog.

Hádajte, čo má tlačidlo Prehliadať, ak je jeho vlastnosť DialogResult nastavená na „OK“. Zmena na „Žiadne“ problém vyriešila.