2017-09-11 5 views
1

enter image description hereC# Comment puis-je obtenir mon article listbox et l'ajouter rapidement quand je pressais checklistboxes

Bonjour Je suis confonds encore à ce comment puis-je obtenir mes articles listbox et quand je clique tous checklistboxes et je veux ajouter la numéros et afficher dans la zone de texte. par exemple je vérifie l'index de checklistbox 1 qui contient 300 l'affiche dans la zone de texte. Puis je vérifie aussi mon index 2 de checkboxlist contient 100 puis il affiche 400. Puis si je vérifie mon index 3 de ma checkboxlist contient 200 il affiche 600 dans la case à cocher.

Mon code:

namespace ggg 
{ 
public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 


    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     listBox1.Items.Clear(); 
     listBox2.Items.Clear(); 
     textBox1.Clear(); 
     foreach (string s in checkedListBox1.CheckedItems) 
     listBox1.Items.Add(s); 
     foreach (int i in checkedListBox1.CheckedIndices) 
     { 
      if (i == 0) 
      { 
       listBox2.Items.Add(300); 
       decimal total = 300; 
       textBox1.Text += total; 
      } 
      if (i == 1) 
      { 
       listBox2.Items.Add(100); 
       decimal total = 100; 
       textBox1.Text += total; 
      } 
      if (i == 2) 
      { 
       listBox2.Items.Add(200); 
       decimal total = 200; 
       textBox1.Text += total; 

      } 
     } 


    } 



} 
} 
+0

qu'avez-vous fait, vous devez faire un effort –

+0

je ne peux pas poster mon code wait –

+0

@gencklavyeler fait monsieur –

Répondre

0

vous pouvez résumer les éléments de ListBox comme cela. Après, vous pouvez définir le total à textBox

 int total = 0; 
     for (int i = 0; i < listBox2.Items.Count; i++) 
     { 
      total = total+ int.Parse(listBox2.Items[i].ToString()); 
     } 
     textBox1.Text = total.ToString(); 
0

Ce code pourrait faire votre travail. Il y a encore de meilleures façons de faire ce que vous cherchez. Mais, cela peut être une bonne solution aussi! Compte tenu de votre nom de zone de texte comme myTextBox:

private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int sum = 0; // Add a variable to capture the sum 

    listBox1.Items.Clear(); 
    listBox2.Items.Clear(); 
    textBox1.Clear(); 
    foreach (string s in checkedListBox1.CheckedItems) 
    listBox1.Items.Add(s); 
    foreach (int i in checkedListBox1.CheckedIndices) 
    { 
     if (i == 0) 
     { 
      listBox2.Items.Add(300); 
      sum += 300; // Add the value to sum 
     } 
     if (i == 1) 
     { 
      listBox2.Items.Add(100); 
      sum += 100; // Add the value to sum 
     } 
     if (i == 2) 
     { 
      listBox2.Items.Add(200); 
      sum += 200; // Add the value to sum 
     } 
    } 

    // Finally, show the sum in text box 
    myTextBox.Text = sum.ToString(); 
} 
+0

merci l'homme que vous êtes le meilleur: D longue vie dieu bénisse hmmm .. monsieur pour la conception monsieur quoi de mieux case à cocher ou checklistbox? ma liste de contrôle n'est pas comme l'utilisateur amical pour moi parce que la boîte est si difficile à cliquer –

+0

@HeiSciff, Si vous ajoutez un groupe de 'checkboxes' il y aurait trop d'objets d'interface utilisateur avec trop de poignées. Donc, mauvais pour la performance si c'est une grosse application. De plus, vous devrez écrire des gestionnaires d'événements pour les cases individuelles. Je recommanderais 'checklistbox'. Pour le problème que vous mentionnez avec 'checklistbox', pouvez-vous essayer de définir la propriété' CheckOnClick' et voir si cela fait une différence? – praty