c#删除列表框的键

2 c# winforms

我有一个列表框,我可以用一个按钮删除项目但我想也能用我的键盘上的删除键删除,我找不到谷歌的方式所以有人可以请帮助我

编辑 它的winform应用程序

这是删除按钮的代码:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢琼斯

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

    }
Run Code Online (Sandbox Code Playgroud)

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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*lis 6

applicationListBox.PreviewKeyDown +=new PreviewKeyDownEventHandler(applicationListBox_PreviewKeyDown);
Run Code Online (Sandbox Code Playgroud)

然后

void applicationListBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Delete)
    {
        //delete
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像msm8bball那样说并抽象出代码,所以按钮点击和previewkeydown调用delete方法