2013-10-14 1 views
0

J'essaie de comprendre comment vérifier si une listbox contient une chaîne spécifique à un index sélectionné, mais je n'arrive pas à comprendre. C'est un projet WAF.Vérifiez si l'élément sélectionné dans une listbox contient des caractères spécifiques

private void UpdateGUI(string name, double price) 
{ 
    //Check if the seat is already reserved?? 
    //Check if the seat is already canceled?? 

    int index = lstSeats.SelectedIndex; 
    if (index < 0) 
    { 
     MessageBox.Show("Please select an item in the list!"); 
     return; 
    } 

    string strOut = string.Empty; 
    string strReserved = "Vacant"; 

    if (rbtnReserve.Checked) 
    { 
     strReserved = "Reserved"; 
    } 

    else 
    { 
     name = string.Empty; 
     price = 0.0; 
    } 

    strOut = string.Format("{0,3} {1,14} {2,11} {3,13:f2}", index + 1, strReserved, name, price); 
    lstSeats.Items.RemoveAt(index); 
    lstSeats.Items.Insert(index, strOut); 
    lblNumOfReservedSeats.Text = numOfReservedSeats.ToString(); 
    lblNumberOfVacantSeats.Text = (totalNumOfSeats - numOfReservedSeats).ToString(); 
    lblTotalNumOfSeats.Text = totalNumOfSeats.ToString(); 
} 

Fondamentalement, je ne veux pas réserver une place (au cinéma) qui a déjà été réservé, ou si le siège est déjà annulé, je ne veux pas l'annuler à nouveau. Aucune suggestion?

Ou serait-il préférable de vérifier dans le code suivant ?:

private void btnOK_Click(object sender, EventArgs e) 
{ 
    string name = string.Empty; 
    double price; 

    bool inputOK = ReadAndValidateInput(out name, out price); 

    if (inputOK) 
    { 
     if (rbtnReserve.Checked) 
     { 
      numOfReservedSeats++; 
     } 

     else 
     { 
      numOfReservedSeats--; 
     } 
     UpdateGUI(name, price); 
    } 
} 
+0

WinForms , wpf ou autre chose? – nawfal

+0

Également très peu clair ce que vous voulez réellement. Quels caractères spécifiques? Où voulez-vous le vérifier? Quelle ligne? Je suppose que vous devriez faire quelque chose comme 'listbox.Text.Contains (...)' ou quelque chose de similaire. – nawfal

+0

Je suggérerais de définir une classe de siège pour votre usage et créer dans cette classe un membre pour l'état réservé et l'état annulé. – HimBromBeere

Répondre

1

EDIT:

pour WFA et vérifier si un élément contient donné chaîne utilisez:

if (listBox1.SelectedIndex != -1) 
     { 
      int itemAtPostion = listBox1.SelectedIndex; 
      string reserved = "Reserved"; 

      if (listBox1.Items[itemAtPostion].ToString().Contains(reserved)) 
      { 
       MessageBox.Show("We are sorry, but this seat is reserved!"); 
       //your code 
      } 
     }    
+0

Je suis un noob en programmation, surtout en C#. C'est en fait WFA (Windows Forms Application) que je n'étais probablement pas clair avant. Ce n'est pas vraiment un personnage comme dans un char que je recherche, mais une chaîne spécifique, disons "Réservé" sur la ligne qui a été sélectionnée. Donc, si cette ligne contient "Réservé" je veux alerter l'utilisateur que cette ligne spécifique ne peut pas être réservée à nouveau .. J'espère que j'ai un sens. – Manin

+0

J'ai mis à jour ma réponse pour vous, maintenant cela fonctionne pour WFA et vérifie si l'élément donné contient une chaîne particulière. Si c'est ce que vous voulez, s'il vous plaît noter et accepter comme une réponse correcte:) Si vous ne vous sentez pas libre de me donner plus d'explications sur ce que vous voulez et je vais essayer de faire de mon mieux. – Tafari

+0

Également ajouté 'une alerte' pour un utilisateur s'il est réservé. – Tafari

Questions connexes