2009-11-16 10 views
12

एक पर DialogResult.Cancel देता है।PrintDialog.ShowDialog (यह) तुरंत घर अनुप्रयोग है कि मैं कर रहा हूँ विकासशील एक विंडोज 7 (64 बिट) पीसी पर अजीब बर्ताव कर रही है में विंडोज 7

यदि मैं प्रिंटडिअलॉग का एक उदाहरण बनाता हूं, और इसे ShowDialog() विधि कहता हूं, तो विधि तुरंत संवाद संवाद के बिना DialogResult.Cancel लौटाती है।

विंडोज 7 पीसी में प्रिंटर स्थापित हैं (एक काम करने वाले डिफ़ॉल्ट प्रिंटर के साथ)।

PrintDialog printDialog = new PrintDialog(); 

printDialog.PrinterSettings.Copies = 2; 
printDialog.AllowCurrentPage = false; 
printDialog.AllowPrintToFile = false; 
printDialog.AllowSelection = false; 
printDialog.AllowSomePages = false; 
DialogResult dialogResult = printDialog.ShowDialog(this); 

if (dialogResult == DialogResult.Cancel) 
    return; 

कोई सुराग क्यों यह हो रहा है?

उत्तर

30

सेट printDialog.UseEXDialogtrue को यह बग के आसपास काम करने के लिए।

नेट 3.5, MSDN mentions this potential problem में जब UseEXDialog दस्तावेजीकरण:

जब इस संपत्ति के लिए true, ShowHelp और ShowNetwork के रूप में इन गुणों Windows 2000 और Windows के बाद के संस्करणों के लिए पुराने हो गए थे नजरअंदाज कर दिया जाएगा निर्धारित है। इसके अलावा, PrintDialog कक्षा AMD64 माइक्रोप्रोसेसरों पर काम नहीं कर सकती है जब तक कि आप UseEXDialog प्रॉपर्टी को true पर सेट न करें।

(मेरे जोर।)

.Net 4 के लिए

एक ही पृष्ठ और .Net 4.5, पर बल दिया बिट शामिल नहीं है तो शायद यह उन संस्करणों में निश्चित होती है।

+1

एक अच्छी टिप की तरह लगता है, लेकिन क्या आपके पास कोई संदर्भ है? http://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.useexdialog.aspx –

+2

धन्यवाद किसी और रुचि के लिए, UseExDialog के लिए MSDN लेख इस बारे में अधिक टिप्पणी है कुछ भी उपयोगी नहीं मिला, हालांकि अब मुझे समाधान पता है, इस मुद्दे पर बहुत सारी पढ़ाई सामग्री है http://www.google.co.uk/search?q=UseExDialog+cancelled – Bryan

+0

मेरे प्रारंभिक Googling - – Bryan

संबंधित मुद्दे