2017-10-17 25 views
-9

En essayant de développer un formulaire pour une clinique imaginaire pour animaux de compagnie dans Visual Studio en utilisant C# et il se compose de cases à cocher et une étiquette. Les cases à cocher représentent un service que la clinique exécute et lorsque le prix du service est censé être affiché sur l'étiquette, chaque fois que d'autres cases sont cochées, elles sont censées ajouter au prix et, lorsqu'elles sont décochées, supprimer le prix. Je suis coincé sur la façon dont je reçois les cases à cocher pour avoir une valeur pour afficher l'étiquetteComment puis-je obtenir mes cases à cocher pour afficher et ajouter des numéros dans une étiquette sur C#

par exemple: la vaccination case (chkVaccinations) est censé coûter 35 dollars

Comment puis-je obtenir la case à cocher pour avoir une valeur de 35 et cocher pour ajouter à la valeur de l'étiquette qui est zéro?

private void chkVaccinations_CheckedChanged(object sender, EventArgs e) { 
    if (chkVaccinations.Checked) 
    { 

    } 
    else 
    { 

    } 


    private void lblTotalprice_Click(object sender, EventArgs e) 
    { 

    } 
+0

Qui sait? Est-ce WinForms? WPF? UWP? ASPIC? – Equalsk

+0

cela est dans Visual Studio en utilisant C# –

+1

Oui, et Visual Studio et C# peuvent créer tous les types de projets que j'ai mentionnés ci-dessus et ils sont tous différents. Vous avez _any_ code pour partager (, EventArgs e object sender) { si (chkVaccinations.Checked) } – Equalsk

Répondre

1

Tbh votre question n'a pas beaucoup d'informations pour pouvoir vous aider, mais voici une idée d'une solution à votre exemple supposer que ce soit behind. Si vous voulez une solution MVVM complète, je peux mettre à jour la réponse pour cela.

EDIT: a fait quelques changé pour adapter la réponse à votre dernière demande dans les commentaires

private double TotalPrice { get; set; } 

private void ComputeTotalPrice(double increment) 
{ 
    TotalPrice += increment; 
} 

private void chkVaccinations_CheckedChanged(object sender, EventArgs e) 
{ 
    if (chkVaccinations.Checked) 
    { 
     ComputeTotalPrice(priceAssociatedWithThisCheckBox); 
    } 
    else 
    { 
     ComputeTotalPrice(-priceAssociatedWithThisCheckBox); 
    } 
    UpdateLabel(); 
} 

private void UpdateLabel() 
{ 
    If you want to show $ with 2 decimals 
    string formattedPrice = string.Format("{0:0.00}", TotalPrice).Replace(".00",""); 
    lblTotalprice.Text= $"{formattedPrice}$"; 
} 
+0

J'ai changé mon code pour celui-ci cependant "ComputeTotalPrice" dans "private int ComputeTotalPrice (int increment)" a une ligne rouge en dessous ainsi que "content" dans "lblTotalprice.Content = TotalPrice.ToString();" donc je me demandais comment réparer ces –

+0

J'ai corrigé la faute de frappe dans ma réponse, ComputeTotalPrice devait être de type Void. – Picnic8

+0

Merci beaucoup! Maintenant, si je voulais que le prix soit affiché en dollars $ dans l'étiquette, est-ce que j'ajouterais un "(c)" quelque part? dans la section "UpdateLabel"? –