* 環境設定やDLLの追加などは以下を参照。ここでは、プログラムの実装だけを記入するhttp://blogs.yahoo.co.jp/dk521123/31319482.html
http://blogs.yahoo.co.jp/dk521123/31598064.html
http://blogs.yahoo.co.jp/dk521123/31586051.html
追加するファイル
[1] クラスライブラリ : スナップイン ⇒今回は、ファイル名「SampleSnapIn.cs」とする [2] クラスライブラリ : MMCのロジカルなView ⇒今回は、ファイル名「SampleFormView.cs」とする [3] ユーザコントロール : WinFormのコントロールView ⇒今回は、ファイル名「SampleControl.cs」とする ※デザインは、以下の通り。 + ListView x 1
サンプル
SampleSnapIn.cs
using System.ComponentModel; using Microsoft.ManagementConsole; [SnapInSettings("{87C9C5E7-D6CC-4dba-BA7F-CBA7875B8574}", DisplayName = "Sample Using Form", Vendor = "Sample Company", Description = "This is a sample in MMC.")] public class SampleSnapIn : SnapIn { public SampleSnapIn() { this.RootNode = new ScopeNode(); this.RootNode.DisplayName = "Selection (FormView) Sample"; FormViewDescription fvd = new FormViewDescription(); fvd.DisplayName = "Users (FormView)"; fvd.ViewType = typeof(SampleFormView); fvd.ControlType = typeof(SampleControl); this.RootNode.ViewDescriptions.Add(fvd); this.RootNode.ViewDescriptions.DefaultIndex = 0; } } [RunInstaller(true)] public class InstallUtilSupport : SnapInInstaller { }
SampleFormView.cs
using Microsoft.ManagementConsole; public class SampleFormView : FormView { private SampleControl selectionControl = null; protected override void OnInitialize(AsyncStatus status) { base.OnInitialize(status); this.selectionControl = (SampleControl)this.Control; this.Refresh(); } protected void Refresh() { string[][] users = { new string[] {"Karen", "Feb 4th"}, new string[] {"Sue", "May 5th"}, new string[] {"Tina", "Apr 5th"}, }; this.selectionControl.RefreshData(users); } protected override void OnSelectionAction(Action action, AsyncStatus status) { switch ((string)action.Tag) { case "ShowSelection": this.selectionControl.ShowSelection(); break; } } }
WinFormのコントロールView「SampleControl.cs」については書ききれないので、下記の記事に記述する
http://blogs.yahoo.co.jp/dk521123/31611779.html
http://blogs.yahoo.co.jp/dk521123/31611779.html