2013-06-25 2 views
2

J'ai une liste où je peux supprimer des éléments avec un bouton, mais je veux aussi pouvoir supprimer avec la touche de suppression de mon clavier, je ne pouvais pas trouver un moyen sur google alors quelqu'un peut-il m'aider moiC# Touche de suppression pour la liste

Modifier Son application Winform

Voici le code pour le bouton de suppression:

private void Button3Click(object sender, EventArgs e) 
{ 
    var application = this.GetCurrentApplication(); 

    if (application == null) 
    { 
     MessageBox.Show("No Application selected"); 
     return; 
    } 

    if (MessageBox.Show("You are about to delete application: " + Environment.NewLine + _applicationListBox.SelectedItem + Environment.NewLine + "Are you sure you want to delete the application?", "", MessageBoxButtons.YesNo) == DialogResult.No) 
    { 
     MessageBox.Show("The application will not be deleted.", "", MessageBoxButtons.OK); 
    } 
    else if (this._applicationListBox.SelectedIndex >= 0) 
    { 
     int index = _applicationListBox.SelectedIndex; 

     _toepassingIniFile.ToePassingen.Remove(application); 
     if (index == _toepassingIniFile.ToePassingen.Count) 
      --index; 
     application = index < 0 ? null : _toepassingIniFile.ToePassingen[index]; 

     _toepassingIniFile.Save(application); 

     _applicationListBox.DataSource = null; 
     _applicationListBox.DataSource = _toepassingIniFile.ToePassingen; 

     _applicationListBox.SelectedIndex = index; 
    } 
} 

merci réponse à Jonesy

private void ApplicationListBoxPreviewKeyDown(object sender, PreviewKeyDownEventArgs e) 
    { 
     if (e.KeyCode ==Keys.Delete) 
     { 
      deletefromlistbox(); 
     } 
     if (e.KeyCode == Keys.Insert) 
     { 
      Refreshapplication(); 
     } 

    } 

Refreshapplication

private void Refreshapplication() 
    { 
     var newapplication = new NewApplication(_toepassingIniFile); 
     if (newapplication.Run()) 
     { 
      _applicationListBox.DataSource = null; 
      _applicationListBox.DataSource = _toepassingIniFile.ToePassingen; 
      _applicationListBox.SelectedIndex = _toepassingIniFile.ToePassingen.Count - 1; 
      _controllercombobox.DataSource = null; 
      _controllercombobox.DataSource = _controllerIniFile.Controllers; 
     } 
    } 
+1

ajouter un événement PreviewKeyDown à la zone de liste . Ensuite, vérifiez que la clé était Supprimer dans le gestionnaire d'événements – Jonesopolis

+0

Pouvez-vous donner plus de contexte? Application installée? Application Web? – Feasoron

+0

Son une application winform –

Répondre

5
applicationListBox.PreviewKeyDown +=new PreviewKeyDownEventHandler(applicationListBox_PreviewKeyDown); 

puis

void applicationListBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Delete) 
    { 
     //delete 
    } 
} 

puis faire comme msm8bball dit et abstraite que le code afin que les deux clic de bouton et PreviewKeyDown appeler la méthode de suppression

+0

Il n'était pas complètement correct la bonne réponse devrait être dans la question mais grâce à vous je l'ai compris –

+0

Glad ça t'a aidé à sortir – Jonesopolis

+0

Le code dont je suis issu est sous la question –

Questions connexes