#c# #.net
#c# #.net
Вопрос:
У меня есть 10 флажков в форме … и что я хочу, так это когда я щелкаю правой кнопкой мыши по флажку и нажимаю редактировать в контекстном меню, тогда текстовое значение флажка должно измениться.. итак, что я хочу, так это установить флажок и тот флажок из 10, на котором я щелкнул правой кнопкой мыши.. не могу даже использовать объект sender, так как объект sender вернет «Редактировать», когда мы нажимаем «Редактировать» в контекстном меню..
Комментарии:
1. Какой класс вы используете для контекстного меню?
Ответ №1:
Предположим, у вас есть несколько флажков в форме и один ContextMenuStrip, который назначен для каждого флажка. Вы можете получить объект checkbox в обработчике щелчка элемента контекстного меню, как показано ниже:
private void changeToolStripMenuItem_Click(object sender, EventArgs e)
{
CheckBox myCheckbox = (((sender as ToolStripDropDownItem).Owner as ContextMenuStrip).SourceControl as CheckBox);
myCheckbox.Text = DateTime.Now.ToString();
}
Ответ №2:
("Edit".Parent as ContextMenu/ContextMenuStrip).SourceControl
Ответ №3:
Присоединитесь к MouseDown
событию на элементе управления checkbox и посмотрите, была ли нажата правая кнопка мыши ( MouseButtons.Right
), и сохраните это в переменной like currentCheckBox
, на которую вы затем можете ссылаться.