2010-06-30 11 views
5

मुझे लगता है कि उपयोगकर्ता क्लिक किया DialogBox का बटन प्राप्त करना चाहते हैं ... अभी तक जब मैं DialogResult का उपयोग मैंसी # DialogBox और DialogResult

'System.Windows.Window.DialogResult' is a 'property' but is used like a 'type' 

मैं DialogResult का उपयोग कैसे कर सकते हैं यह त्रुटि प्राप्त ??

ठीक है, मैंने इसे हल करने में कामयाब रहा है।

MessageBoxResult Result = MessageBox.Show("Message Body", @"Caption/Title", MessageBoxButton.YesNo); 
     switch (Result) 
     { 
      case MessageBoxResult.Yes: 
       MessageBox.Show("Yes Pressed!!"); 
       break; 
      case MessageBoxResult.No: 
       MessageBox.Show("No Pressed!!"); 
       break; 
     } 
+3

आप कुछ स्रोत जोड़ा जा सकता:

तुम इतनी तरह परिणाम की जाँच करने की आवश्यकता है? – JasCav

उत्तर

3

अद्यतन: बस एहसास हुआ कि आप WPF का उपयोग कर रहे हैं, WinForms नहीं।

MyDialog dialog = new MyDialog(); 
bool? dialogResult = dialog.ShowDialog(); 
if (dialogResult.HasValue && dialogResult.Value) 
{ 
    // User clicked OK 
} 
else 
{ 
    // User clicked Cancel" 
} 

यह here पर एक अच्छा ट्यूटोरियल है: यहाँ WPF भीतर DialogResult का सही कार्यान्वयन है।

बस लगता है कि आप फॉर्म की DialogResult संपत्ति का गलत उपयोग कर रहे हैं। आप नीचे दिए गए कुछ ऐसा करना चाहिए:

DialogResult result = Form.DialogResult; 
if (result == DialogResult.Yes) 
{ 
    // Do something 
} 

पूर्ण DialogResult गणन टूटने here पा सकते हैं।

+0

यह वास्तव में गलत है। वह डब्ल्यूपीएफ (या सिल्वरलाइट) डायलॉग रिसेट संपत्ति का उपयोग कर रहा है - यह विंडोज फॉर्म के लिए है। त्रुटि संदेश का पूरा नाम देखें। –

+0

@ रीड- इसे इंगित करने के लिए धन्यवाद, मैं अपडेट करूंगा! – GenericTypeTea

+0

यह काम नहीं करता ... प्रकार या नामस्थान 'MyDialog' नहीं मिला – sikas

0

DialogResult Enum है - आप सीधे अपने फॉर्म की संवाद समीक्षा संपत्ति के साथ तुलना कर सकते हैं।

1

क्या आपको डायलॉगबॉक्स चाहिए? या एक संदेश बॉक्स आपके उद्देश्यों के लिए काम करेगा?

DialogResult dlg = MessageBox.Show("Question User?", 
        "MessageBox Title", 
        MessageBoxButtons.YesNo, 
        MessageBoxIcon.Question); 
      if (dlg == DialogResult.No) 
      { 
       //user changed mind. return 
       return; 
      } 

आदि

+0

डायलॉगबॉक्स काम नहीं करता रेवेन, यह नहीं मिला !! – sikas

+0

मैं उपयोगकर्ता क्लिक पर कार्य करने के लिए एक संदेश बॉक्स चाहता हूं, यदि उपयोगकर्ता हाँ विकल्प 1 पर क्लिक करता है, तो यदि विकल्प 2 नहीं किया जाता है। – sikas

+0

मुझे एक समाधान मिला है और इसे मेरे प्रश्न में जोड़ा गया है। धन्यवाद। – sikas

0

आप WPF या Silverlight उपयोग कर रहे हैं तो DialogResult एक bool है? और आप इसका उपयोग कर सकते हैं ?? परिणाम शून्य होने पर मूल्य प्रदान करने के लिए।

if (myWindow.DialogResult ?? false) 
    Debug.WriteLine("You clicked OK"); 
else 
    Debug.WriteLine("You clicked Cancel"); 
+0

मुझे एक समाधान मिला है और इसे मेरे प्रश्न में जोड़ा गया है। धन्यवाद। – sikas

0

आप WPF के DialogResult संपत्ति है, जो एक Nullable<bool>, न कि एक गणना है का उपयोग कर रहे हैं। तो हम देख सकते हैं कि आप विशेष रूप से कर रहे हैं

bool? dialogResult = dialogBox.ShowDialog(); 

if (dialogResult.HasValue) // Should always have a value, at this point, since the dialogBox.ShowDialog() returned at this point. Will be false until the dialog is closed, however 
{ 
    if (dialogResult.Value) 
    { 
     // User "accepted" the dialog, hitting yes, OK, etc... 
    } 
    else 
    { 
     // User hit "cancel" button 
    } 
} 
+0

मुझे एक समाधान मिला है और इसे मेरे प्रश्न में जोड़ा गया है। धन्यवाद – sikas

0

सी # DialogBox और DialogResult

{ 

     DialogResult a1 = MessageBox.Show("Test", "Title", MessageBoxButtons.YesNo); 
     if (a1 == DialogResult.Yes) 
      MessageBox.Show("Yes"); 
     else if (a1 == DialogResult.No) 
      MessageBox.Show("No"); 

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