2009-07-29 19 views
6

私はVSとC#では比較的新しいですが、Delphiで何年もの経験があります。 DelphiでGUIを設計する際に私が気に入っているコンポーネントの1つに、ActionManagerがあります。アクションのイベントハンドラの割り当てと有効化/無効化を集中管理する方法です。 驚いたことに、私はVisual Studio 2008 Professionalでこのようなものを見つけることができません。 サードパーティの実装が必要であると確信していますが、私は何か標準を好むでしょう。Visual StudioにDelphiのActionManagerの代替手段があります

誰も私にこのことについて何か提案できますか?おそらく、私が見逃している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#にはイベントとデリゲートの概念があり、アクションとそのハンドラに相当します。コントロールイベント(またはGUIアクション)を代理人に結びつけます。例えば、

mybutton.Click += HandleMyButtonClick; 

Click署名void (object sender, EventArgs e)とデリゲートであろう。この署名の後には、このようなHandleMyButtonClickメソッドが続きます。

void HandleMyButtonClick(object sender, EventArgs e) 

コントロールのクラスドキュメントでは、発生したすべてのイベントをリストしたセクションがあります。これらのイベントは、それらを処理するために必要な代理人の署名も記述します。

+0

私はなぜ否定的なスコアを聞くことができますか? –

+2

私はdownvoteをしませんでしたが、アクションはメソッドを呼び出すだけです。また、Caption、Image、およびそれを無効にするようなアクションを「更新」する方法を提供する中心的な場所を提供します。 –

+0

私は "MVCの派手な実装"を使用しています8-)元の投稿は、ActionManagerにどれほど近づいているか不明でした。私は彼が代理人やイベントについて知らなかったと思っていました。そして、彼はこの知識で自分のActionManagerを構築することができました。 とにかく正当な理由がありがとうございます。 –

関連する問題