Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# a dialogy - dotaz

Potřeboval bych se zeptat na jeden dotaz týkající se dialogů v C#.
Jde o to, že podle dokumentace mi to absolutně nebere. Potřebuji udělat jen triviální, jednoduchý
"YESNO" confirm při ukončování programu.
V manualu stojí to co mi ovšem vůbec nefunguje, konkrétně:
http://msdn2.microsoft.com/en-us/library/aa969773.a spx

string messageBoxText = "This document needs to be saved ... .";
string caption = "Word Processor";
MessageBoxButton button = MessageBoxButton.YesNoCancel;
MessageBoxImage icon = MessageBoxImage.Warning;

Pokus o překlad uvedeného úseku končí fiaskem. Nejsou vůbec známy "šablony" MessageBoxButton nebo MessageBoxImage. To jsem rychle přepsal na MessageBoxButtons nebo MessageBoxImages což už přechroustá bez problému ovšem vždycky se zadrhne na argumentech pro zobrazení dialogu.
Konkrétně:

 string messageBoxText = "This document needs to be saved ... .";
            string caption = "Word Processor";
            MessageBoxButtons button3 = MessageBoxButtons.YesNoCancel;
            MessageBoxIcon icon2 = MessageBoxIcon.Exclamation;
            MessageBox.Show(messageBoxText, caption, button3, icon2); // !!!

Problém je jen v posledním řádku, který by měl vyvolat zobrazení dialogu.
Píše mi to tohle:

...Form1.cs(42,13): error CS1501: No overload for method 'Show' takes '4' arguments

Pokud pošlu funkci pro tvorbu dialogu pouze dva první argumenty a zbytek odmažu tak to funguje, ale bohužel jinek než si představuji (není to confirm "jen" OK message box).

Dostal jsem se k tomu teprve včera takže se v tom opravdu neorientuji a jen se víceméně rozhlížím.

//edit

Důležité - ještě jsem zapomněl dodat jedná se o projekt pro Pocket PC2003 (Windows mobile).
Ale to by snad vliv mít nemělo.... hned testnu.

Předmět Autor Datum
Omlouvám se za položení dotazu, klidně si ho vymazejte. Oni to mají v dokumentaci i v helpu naprosto…
Flash_Gordon 08.07.2007 21:54
Flash_Gordon
Prečo pozeráš do dokumentácie k Windows Presentation Foundation, keď robíš s Windows Forms? Dokument…
los 08.07.2007 22:45
los
No dobře.... jenomže potom stejně nechápu proč mi našeptává lži. Mimo to stejně nefunguje jejich vz…
Flash_Gordon 08.07.2007 22:55
Flash_Gordon
Jak nefunguje? Teraz som to skompiloval a nenarazil som na žiaden problém. Btw: The .NET Framework…
los 09.07.2007 09:20
los
Aha v tom to nejspíš bude. (Nefunguje myslím píše neplatné argumenty pro tu funkci Show) poslední
Flash_Gordon 09.07.2007 10:41
Flash_Gordon

Omlouvám se za položení dotazu, klidně si ho vymazejte.
Oni to mají v dokumentaci i v helpu naprosto jinak :-?.
Neuvěřitelné. Když jsem to hodil do Google vypadlo na mě tohle:

 if (MessageBox.Show("Really delete?","Confirm delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
      {
               // a 'DialogResult.Yes' value was returned from the MessageBox
               // proceed with your deletion
      }

Což funguje výborně. Ovšem "našeptávač" uvádí zcela scestné údaje:
[http://img443.imageshack.us/img443/8342/78833740ua3 .png]

Nakonec plní přesně to co potřebuji tento kód :-( :

if (MessageBox.Show("Really delete?", "Confirm delete", MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.Yes)

Tato zkušenost s nápovědou vestavěnou je pro mne hodně mrzutá...

Prečo pozeráš do dokumentácie k Windows Presentation Foundation, keď robíš s Windows Forms? Dokumentáciu k MessageBox.Show nájdeš na http://msdn2.microsoft.com/en-us/library/system.win dows.forms.messagebox.show(VS.80).aspx.

MessageBox.Show má 21 rôznych možností, s akými argumentami ju volať. Takže Visual Studio síce ukazuje, že ako tretí argument očakáva reťazec pre nadpis, ale to by musel byť prvým argumentom vlastník dialógu, čo nie je. Medzi ďalšími možnosťami si môžeš prepínať šípkami hore a dole.

No dobře.... jenomže potom stejně nechápu proč mi našeptává lži.

Mimo to stejně nefunguje jejich vzorový příklad:

private void button1_Click(object sender, System.EventArgs e) {
   if(textBox1.Text == "") {
      MessageBox.Show("You must enter a name.", "Name Entry Error",
         MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
   }
   else {
      // Code to act on the data entered would go here.
   }
}

Zpět do poradny Odpovědět na původní otázku Nahoru