Как использовать contextMenuStrip, чтобы удалить linklable - PullRequest
0 голосов
/ 26 августа 2011

Я создал линкели динамически, и теперь я хочу удалить любой из них, щелкнув правой кнопкой мыши на этом перкулярном линкбле. Я пробовал это с помощью контекстного меню, но мне не удалось удалить ссылки. Пожалуйста, помогите мне в этом.

заранее спасибо

1 Ответ

0 голосов
/ 26 августа 2011

Вы пытались обработать событие MouseDown и получить LinkLabel из аргумента отправителя в обработчик события? Оттуда вы сможете удалить его из коллекции Controls его родителя.

Если вы хотите использовать ContextMenuStrip для взаимодействия с пользователем, вы все равно можете обработать событие MouseDown LinkLabel и сохранить последний нажатый экземпляр в свойстве Tag свойства ContextMenuStrip. Затем, когда щелкнет ваш элемент меню, вы можете получить последний нажатый LinkLabel и продолжить его удаление из коллекции элементов управления.

private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
    var lbl = this.contextMenuStrip1.Tag as LinkLabel;
    if (lbl != null)
        lbl.Parent.Controls.Remove(lbl);
}

private void linkLabel1_MouseDown(object sender, MouseEventArgs e)
{
    this.contextMenuStrip1.Tag = sender;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...