2011-05-26 9 views
1

J'ai googlé mes doigts nus sur celui-ci et je sais que le code ici n'est pas très acceptable mais j'apprécierais vraiment de l'aide:Si déclaration/valeur de contrôle?

Cette case à cocher doit aller vérifier une valeur (booléenne) d'un bouton d'option.

Afficher un message différent en fonction de cette valeur et si True inclure une ligne supplémentaire dans un courrier, mais c'est un autre problème.

Toute aide serait grandement appréciée. J'ai vraiment besoin de prendre le coup de ce C#.

public void field42_Changed(object sender, XmlEventArgs e) 
{ 
    // checking Gsm checkbox([email protected]) 
    if (e.NewValue.Equals("true")) 
    { 
     XPathNavigator xnMyForm = this.CreateNavigator(); 
     XmlNamespaceManager ns = this.NamespaceManager; 
     xnMyForm.SelectSingleNode("/my:myFields/my:txtGSM", ns).SetValue("[email protected]"); 
     //string MobielInternet = xnMyForm.SelectSingleNode("/my:myFields/my:GsmMobileInternet", ns).Value; 
     if MobielInternet e.NewValue.Equals("true") 
      MessageBox.Show("An e-mail for GSM with Mobile internet will be sent"); 
     if (e.NewValue.Equals("false")) 
      MessageBox.Show("An email for the GSM will be sent"); 
     if (e.NewValue.Equals("")) 
      MessageBox.Show (" The Mobile Internet option has to been filled out "); 
    } 
    else if (e.NewValue.Equals("false")) 
    { 
     XPathNavigator xnMyForm = this.CreateNavigator(); 
     XmlNamespaceManager ns = this.NamespaceManager; 
     xnMyForm.SelectSingleNode("/my:myFields/my:txtGSM", ns).SetValue(""); 
    } 
} 
+1

Vous n'avez pas vraiment donné une bonne description du problème - vous avez dit ce que vous voulez qu'il fasse, et donné du code ... alors qu'est-ce qui ne va pas? Voir http://tinyurl.com/so-hints –

+0

si MobielInternet e.NewValue.Equals ("true") a une parenthèse incorrecte. –

+0

oui mais j'ai eu sa valeur à travers une valeur du noeud comme dans ", // chaîne MobielInternet = xnMyForm.SelectSingleNode ("/mon: myFields/mon: GsmMobileInternet ns) .Value; si MobielInternet e.NewValue.Equals ("true") – Euronymus

Répondre

0

Ce serait ma suggestion pour le code plus propre. J'espère que je ne manque pas le point ici, mais vous ne comparez pas réellement la valeur de mobielinternet, vous compariez la valeur d'EventArgs encore.

Essayez ceci.

XPathNavigator xnMyForm = this.CreateNavigator(); 
XmlNamespaceManager ns = this.NamespaceManager; 
var emailAddress = ""; 
var message = ""; 

if (e.NewValue.Equals("true")) 
{ 
    emailAddress = "[email protected]"; 
    string MobielInternet = xnMyForm.SelectSingleNode("/my:myFields/my:GsmMobileInternet", ns).Value; 

    if (string.IsNullorEmpty(MobielInternet)) 
     message = "The Mobile Internet option has to been filled out"; 

    if (bool.Parse(MobielInternet)) 
     message = "An e-mail for GSM with Mobile internet will be sent"; 
    else 
     message = "An email for the GSM will be sent"; 

    MessageBox.Show(message); 
} 
else if (e.NewValue.Equals("false")) 
{ 
    XPathNavigator xnMyForm = this.CreateNavigator(); 
    XmlNamespaceManager ns = this.NamespaceManager; 
    xnMyForm.SelectSingleNode("/my:myFields/my:txtGSM", ns).SetValue(""); 
} 


xnMyForm.SelectSingleNode("/my:myFields/my:txtGSM", ns).SetValue(emailAddress); 
+0

merci un million ... cela a été d'une grande aide! – Euronymus

+0

mon plaisir. :) – BAKeele

Questions connexes