2009-07-29 2 views
6

Я относительно новичок в VS и C#, но имею многолетний опыт работы в Delphi. Одним из моих любимых компонентов при разработке графического интерфейса в Delphi является ActionManager - централизованный способ назначения обработчиков событий для действий, а также включения/выключения их. Удивительно, но я не могу найти ничего подобного в Visual Studio 2008 Professional. Я уверен, что должны быть сторонние реализации, но я бы предпочел что-то стандартное.Есть альтернатива ActionManager Delphi в Visual Studio

Может ли кто-нибудь предложить мне что-нибудь для этого? Может быть, есть альтернативный способ эффективного управления действиями GUI, которые мне не хватает?

+0

Вы не имеете в виду TActionList? Разве TActionManager больше не подходит для модных меню и панелей инструментов? –

+1

Возможный дубликат: http://stackoverflow.com/questions/489376/is-there-net-equivalent-to-delphis-actionlist –

ответ

3

В WPF есть Commands, которые концептуально похожи.

+0

Спасибо, это кажется очень близким, но, к сожалению, недоступно для WinForms. Я не уверен, что пришло время перейти в WPF, но похоже, что MS позиционирует WinForms как устаревшую технологию. Не очень хорошо для них. – koldovsky

1

Я тоже любил ActionManager. В то время я не знал об этом, но все это фантастическая реализация Model-View-Controller. Оглядываясь назад, Delphi была слишком продвинута для неподготовленного сообщества разработчиков 8-)

На вопрос, на C# есть концепция событий и делегатов, которые эквивалентны действиям и их обработчикам. Вы связываете контрольные события (или действия графического интерфейса) с делегатами. Например,

mybutton.Click += HandleMyButtonClick; 

Click будет делегатом с подписью void (object sender, EventArgs e). Эта подпись будет следовать методу HandleMyButtonClick, как это.

void HandleMyButtonClick(object sender, EventArgs e) 

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

+0

Могу ли я спросить, почему отрицательный результат? – 2009-07-29 19:43:31

+2

Я не делал downvote, но действия делают больше, чем просто вызов метода. Они также обеспечивают центральное место, чтобы обеспечить надпись, изображение и способ «обновить» действие, например, отключить его. –

+0

Следовательно, мое использование «причудливой реализации MVC» 8). Оригинальное сообщение неясно о том, насколько близко к ActionManager ему нужна была альтернатива. Я предположил, что он не знал о делегатах и ​​событиях, и что он мог бы создать свой собственный ActionManager с этими знаниями. Спасибо за оправдание в любом случае. – 2009-07-29 20:19:25

Смежные вопросы