Key プロパティが一意のユーザー定義のオブジェクト識別文字列で、コードを使用してアクセスする時にオブジェクトの Index と交互に使用できます。コレクション内で一意でない値を Key プロパティに割り当てようとすると、エラーが発生します。
オブジェクトの追加または削除時など、コレクション内のオブジェクトが並べ替えられるときに、オブジェクトの Index プロパティの値は変更できます。Index プロパティが動的に変化すると想定される場合は、Key プロパティを使用してコレクション内のオブジェクトを参照します。また、Key プロパティを使用してコレクション内のオブジェクトに意味のある名前を割り当てることで、プログラムを「自己文書化」することができます。
オブジェクトをコレクションに追加するために Add メソッドを使用するとき Key プロパティを設定できます。場合によっては、そのオブジェクトがコレクションに表示しない場合、オブジェクトの Key プロパティはブランクになる場合があります。
さらに、キーの一意性は、Key プロパティが値に設定された時に限って強制されます。コレクションがブランク キーを持つオブジェクトをサポートする場合、そのコレクションにはKey プロパティが空の複数のオブジェクトが含まれる場合があります。その場合、Index プロパティを使用して、ブランク キーを持つオブジェクト間を差別化する必要があります。
Imports System.Diagnostics Imports Infragistics.Win Imports Infragistics.Win.UltraWinToolbars Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click ' ---------------------------------------------------------------------------- ' PopupMenuTool を作成します Dim fileMenu As New PopupMenuTool("FileMenu") ' メニューまたはツールバーに追加する前に、常に新しいツールを ' UltraToolbarManager のルート ツール コレクションに追加します Me.UltraToolbarsManager1.Tools.Add(fileMenu) ' Popup メニューのプロパティを設定します fileMenu.SharedProps.Caption = "&File" ' ---------------------------------------------------------------------------- ' 標準の [ファイル] メニューのツールを作成します Dim newTool As New ButtonTool("New") Dim openTool As New ButtonTool("Open") Dim closeTool As New ButtonTool("Close") Dim saveTool As New ButtonTool("Save") Dim saveAsTool As New ButtonTool("SaveAs") Dim printTool As New ButtonTool("Print") Dim printPreviewTool As New ButtonTool("PrintPreview") Dim fileMruListTool As New ListTool("FileMRUList") Dim exitTool As New ButtonTool("Exit") ' ツールのプロパティを設定します newTool.SharedProps.Caption = "&New" newTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Warning.Handle) openTool.SharedProps.Caption = "&Open" openTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Application.Handle) closeTool.SharedProps.Caption = "&Close" closeTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Error.Handle) saveTool.SharedProps.Caption = "&Save" saveTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Information.Handle) saveAsTool.SharedProps.Caption = "Save &As" saveAsTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.WinLogo.Handle) printTool.SharedProps.Caption = "&Print" printTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Hand.Handle) printPreviewTool.SharedProps.Caption = "Print Pre&view" printPreviewTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Question.Handle) fileMruListTool.DisplayCheckmark = False fileMruListTool.MaxItemsToDisplay = 10 fileMruListTool.MoreItemsText = "More files..." ' List ツールに MRU エントリを追加しますList ツールはメニューのみに配置できるツールです ' ツールバーには配置できませんメニューでメニュー項目を 1 つ表示するツールの代わりに、 ' ListTool はリストで各 ListToolItem に ' メニュー項目を 1 つ表示します Dim mruListItem As ListToolItem mruListItem = fileMruListTool.ListToolItems.Add("file1", "C:\\Temp\\bootlog1.txt") mruListItem.Value = "C:\\Temp\\bootlog1.txt" mruListItem = fileMruListTool.ListToolItems.Add("file2", "C:\\Temp\\bootlog2.txt") mruListItem.Value = "C:\\Temp\\bootlog2.txt" mruListItem = fileMruListTool.ListToolItems.Add("file3", "C:\\Temp\\bootlog3.txt") mruListItem.Value = "C:\\Temp\\bootlog3.txt" mruListItem = fileMruListTool.ListToolItems.Add("file4", "C:\\Temp\\bootlog4.txt") mruListItem.Value = "C:\\Temp\\bootlog4.txt" mruListItem = fileMruListTool.ListToolItems.Add("file5", "C:\\Temp\\bootlog5.txt") mruListItem.Value = "C:\\Temp\\bootlog5.txt" exitTool.SharedProps.Caption = "E&xit" exitTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Warning.Handle) ' メニューまたはツールバーに追加する前に、常に新しいツールを ' UltraToolbarManager のルート ツール コレクションに追加します Me.UltraToolbarsManager1.Tools.AddRange(New ToolBase() {newTool, openTool, closeTool, saveTool, saveAsTool, printTool, printPreviewTool, fileMruListTool, exitTool}) ' ポップアップ メニューにツールを追加します fileMenu.Tools.AddToolRange(New String() {"New", "Open", "Close", "Save", "SaveAs", "Print", "PrintPreview", "FileMRUList", "Exit"}) ' ツールの間にセパレーターを追加します fileMenu.Tools("Save").InstanceProps.IsFirstInGroup = True fileMenu.Tools("Print").InstanceProps.IsFirstInGroup = True fileMenu.Tools("FileMRUList").InstanceProps.IsFirstInGroup = True fileMenu.Tools("Exit").InstanceProps.IsFirstInGroup = True ' ---------------------------------------------------------------------------- ' メイン メニュー バーを作成し、ポップアップ メニューをメニュー バーに追加します Me.UltraToolbarsManager1.Toolbars.AddToolbar("MyMainMenuBar") ' ツールバーをメイン メニュー バーに設定します Me.UltraToolbarsManager1.Toolbars("MyMainMenuBar").IsMainMenuBar = True Me.UltraToolbarsManager1.Toolbars("MyMainMenuBar").Tools.AddTool("FileMenu") End Sub Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager2.ToolClick Select Case (e.Tool.Key) Case "FileMRUList" Debug.WriteLine("The FileMRUList item with a key of '" + e.ListToolItem.Key + "', text of '" + e.ListToolItem.Text + "', Index of '" + e.ListToolItem.Index + "' and Value of '" + e.ListToolItem.Value.ToString() + "' was clicked.") End Select End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinToolbars; private void button6_Click(object sender, System.EventArgs e) { // ---------------------------------------------------------------------------- // PopupMenuTool を作成します PopupMenuTool fileMenu = new PopupMenuTool("FileMenu"); // メニューまたはツールバーに追加する前に、常に新しいツールを // UltraToolbarManager のルート ツール コレクションに追加します this.ultraToolbarsManager1.Tools.Add(fileMenu); // Popup メニューのプロパティを設定します fileMenu.SharedProps.Caption = "&File"; // ---------------------------------------------------------------------------- // 標準の [ファイル] メニューのツールを作成します ButtonTool newTool = new ButtonTool("New"); ButtonTool openTool = new ButtonTool("Open"); ButtonTool closeTool = new ButtonTool("Close"); ButtonTool saveTool = new ButtonTool("Save"); ButtonTool saveAsTool = new ButtonTool("SaveAs"); ButtonTool printTool = new ButtonTool("Print"); ButtonTool printPreviewTool = new ButtonTool("PrintPreview"); ListTool fileMruListTool = new ListTool("FileMRUList"); ButtonTool exitTool = new ButtonTool("Exit"); // ツールのプロパティを設定します newTool.SharedProps.Caption = "&New"; newTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Warning.Handle); openTool.SharedProps.Caption = "&Open"; openTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Application.Handle); closeTool.SharedProps.Caption = "&Close"; closeTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Error.Handle); saveTool.SharedProps.Caption = "&Save"; saveTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Information.Handle); saveAsTool.SharedProps.Caption = "Save &As"; saveAsTool.SharedProps.AppearancesSmall.Appearance.Image= Bitmap.FromHicon(SystemIcons.WinLogo.Handle); printTool.SharedProps.Caption = "&Print"; printTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Hand.Handle); printPreviewTool.SharedProps.Caption = "Print Pre&view"; printPreviewTool.SharedProps.AppearancesSmall.Appearance.Image= Bitmap.FromHicon(SystemIcons.Question.Handle); fileMruListTool.DisplayCheckmark = false; fileMruListTool.MaxItemsToDisplay = 10; fileMruListTool.MoreItemsText = "More files..."; // List ツールに MRU エントリを追加しますList ツールはメニューのみに配置できるツールです // ツールバーには配置できませんメニューでメニュー項目を 1 つ表示するツールの代わりに、 // ListTool はリストで各 ListToolItem に // メニュー項目を 1 つ表示します ListToolItem mruListItem = null; mruListItem = fileMruListTool.ListToolItems.Add("file1", "C:\\Temp\\bootlog1.txt"); mruListItem.Value = "C:\\Temp\\bootlog1.txt"; mruListItem = fileMruListTool.ListToolItems.Add("file2", "C:\\Temp\\bootlog2.txt"); mruListItem.Value = "C:\\Temp\\bootlog2.txt"; mruListItem = fileMruListTool.ListToolItems.Add("file3", "C:\\Temp\\bootlog3.txt"); mruListItem.Value = "C:\\Temp\\bootlog3.txt"; mruListItem = fileMruListTool.ListToolItems.Add("file4", "C:\\Temp\\bootlog4.txt"); mruListItem.Value = "C:\\Temp\\bootlog4.txt"; mruListItem = fileMruListTool.ListToolItems.Add("file5", "C:\\Temp\\bootlog5.txt"); mruListItem.Value = "C:\\Temp\\bootlog5.txt"; exitTool.SharedProps.Caption = "E&xit"; exitTool.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Warning.Handle); // メニューまたはツールバーに追加する前に、常に新しいツールを // UltraToolbarManager のルート ツール コレクションに追加します this.ultraToolbarsManager1.Tools.AddRange(new ToolBase [] {newTool, openTool, closeTool, saveTool, saveAsTool, printTool, printPreviewTool, fileMruListTool, exitTool} ); // ポップアップ メニューにツールを追加します fileMenu.Tools.AddToolRange(new string [] {"New", "Open", "Close", "Save", "SaveAs", "Print", "PrintPreview", "FileMRUList", "Exit"} ); // ツールの間にセパレーターを追加します fileMenu.Tools["Save"].InstanceProps.IsFirstInGroup = true; fileMenu.Tools["Print"].InstanceProps.IsFirstInGroup = true; fileMenu.Tools["FileMRUList"].InstanceProps.IsFirstInGroup = true; fileMenu.Tools["Exit"].InstanceProps.IsFirstInGroup = true; // ---------------------------------------------------------------------------- // メイン メニュー バーを作成し、ポップアップ メニューをメニュー バーに追加します this.ultraToolbarsManager1.Toolbars.AddToolbar("MyMainMenuBar"); // ツールバーをメイン メニュー バーに設定します this.ultraToolbarsManager1.Toolbars["MyMainMenuBar"].IsMainMenuBar = true; this.ultraToolbarsManager1.Toolbars["MyMainMenuBar"].Tools.AddTool("FileMenu"); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "FileMRUList": Debug.WriteLine("The FileMRUList item with a key of '" + e.ListToolItem.Key + "', text of '" + e.ListToolItem.Text + "', Index of '" + e.ListToolItem.Index + "' and Value of '" + e.ListToolItem.Value.ToString() + "' was clicked."); break; } }