Отключить групповой ящик и оставить включенным контекстное меню

Я занимаюсь переносом устаревшего приложения VB на C#/Winforms. Хотя подавляющее большинство пользовательского интерфейса завершено, у меня есть проблема, которую я не смог решить после некоторых копаний. Моя форма содержит кучу групповых полей, все они идентичны (за исключением некоторого идентификатора, например имени группового поля), каждый из которых содержит несколько элементов управления. У меня есть всплывающее контекстное меню, которое позволяет мне открывать дочерние формы, которые позволяют мне изменять некоторые настройки и т. д. Каждое из этих групповых полей представляет собой физический объект, который можно отключить. Когда я отключаю групповое поле, все дочерние элементы этого поля отключаются или становятся невидимыми. Когда поле группы отключено, меню контекстной полосы также меняется, так что некоторые элементы меню в контекстном меню отключаются, а затем выбор меню «Включено» переключается между отмеченным и неотмеченным, показывая текущее состояние. Проблема в том, что когда я отключаю одно из групповых полей, поле отключается, но контекстное меню больше не открывается, когда я нажимаю на групповое поле. Это не так уж удивительно, но я пытаюсь понять, как отключить групповое поле, сохраняя при этом постоянно включенным контекстное меню. Мне нужно иметь возможность отключить один или несколько из этих групповых ящиков; так обстоят дела, как только я отключу групповое поле, у меня нет возможности снова включить его, так как контекстное меню больше не срабатывает.

Старый код VB позволяет это сделать, но не совсем понятно, как это сделать, и код более или менее беспорядочный. Я бы предпочел не тратить время на обратный инжиниринг.

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


person Gary    schedule 23.08.2012    source источник
comment
Никто не будет читать эту кучу текста без кода, вы должны отредактировать свой вопрос, предоставить код и быть более конкретным.   -  person h1ghfive    schedule 23.08.2012


Ответы (1)


Я решил эту проблему, просто спрятав все элементы управления и изменив цвет окна, чтобы он выглядел отключенным.

person Gary    schedule 23.08.2012