Visual Studioツールボックスでカスタムタブを作成および追加し、カスタムタブに新しいアイテム(コントロール)を追加するための新しいVisualStudioアドインを作成しました。コードは、Visual Studioツールボックスに新しいタブを追加するためには機能しますが、タブに新しいアイテム(コントロール)を追加するためには機能しません。
私のVisualStudioアドインコードは次のとおりです。
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using EnvDTE90;
using EnvDTE100;
using System.Windows.Forms;
namespace MyAddin1
{
/// <summary>The object for implementing an Add-in.</summary>
/// <seealso class='IDTExtensibility2' />
public class Connect : IDTExtensibility2
{
/// <summary>Implements the constructor for the Add-in object. Place your initialization code within this method.</summary>
public Connect()
{
}
/// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
/// <param term='application'>Root object of the host application.</param>
/// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
/// <param term='addInInst'>Object representing this Add-in.</param>
/// <seealso class='IDTExtensibility2' />
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Pass the applicationObject member variable to the code example.
ToolboxExample(_applicationObject);
}
public void ToolboxExample(DTE2 dte)
{
ToolBox tlBox = null;
ToolBoxTabs tbxTabs = null;
ToolBoxTab3 tbxTab = null;
try
{
tlBox = (ToolBox)(dte.Windows.Item(Constants.vsWindowKindToolbox).Object);
tbxTabs = tlBox.ToolBoxTabs;
tbxTab = (ToolBoxTab3)tbxTabs.Add("MRS");
tbxTab.Activate();
tbxTab.ToolBoxItems.Add("FloorsGrouping", @"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\WindowsFormsControlLibrary2\v4.0_1.0.0.0__197889249da45bfc\WindowsFormsControlLibrary2.dll", vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);
}
catch (System.Exception ex)
{
MessageBox.Show("ERROR: " + ex.Message);
}
}
private DTE2 _applicationObject;
private AddIn _addInInstance;
}
}
次のコード行は機能しません:
tbxTab.ToolBoxItems.Add("FloorsGrouping", @"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\WindowsFormsControlLibrary2\v4.0_1.0.0.0__197889249da45bfc\WindowsFormsControlLibrary2.dll", vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);
私が変える
tbxTab.ToolBoxItems.Add
と:
tbxTabs.Item("MRS").ToolBoxItems.Add
しかし、それは私にはうまくいきませんでした。私も変わる
@"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\WindowsFormsControlLibrary2\v4.0_1.0.0.0__197889249da45bfc\WindowsFormsControlLibrary2.dll"
次のコード行を使用して、それらを1つずつテストします。
@"E:\Rostami\Saino\WindowsFormsControlLibrary2.dll"
と
"WindowsFormsControlLibrary2.FloorsGrouping, WindowsFormsControlLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=197889249da45bfc"
しかし、それは私にとって再びうまくいきませんでした。
私のカスタムコントロールのメインクラス名はFloorsGroupingで、その表示名は次のとおりです。
[DisplayName("Floors Group")]
また、GACでのアセンブリ名は次のとおりです。
[Editor("WindowsFormsControlLibrary2.FloorsGrouping, WindowsFormsControlLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=197889249da45bfc", typeof(UITypeEditor))]
インターネットで解決策を検索しましたが、Visual Studioツールボックスに新しいタブを追加したり、VisualStudioアドインから可能なタブにコントロールを追加したりすることを説明している解決策はいくつか見つかりました。