6

我通过覆盖基本控件创建了自己的控件类,即

[ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")]
public class MyTextBox:System.Web.UI.WebControls.TextBox
{
     public string myProperty {get;set;}
}

现在为了方便使用,我所做的就是在 Visual Studio 的 ToolBox 窗口中添加这些覆盖的控件。

为此,我只是这样做。

  1. 通过右键单击和“添加选项卡”在工具箱窗口中添加一个新选项卡
  2. 然后我执行“选择项目”(右键单击)并指向我的控件类的 dll。

我覆盖的所有控件,即 TextBox、Button、Label 都以新名称和图标出现在那里。我所要做的就是拖动它们并使用它们。

现在,有没有办法让我的控件自动加载?我的意思是我不想做上面提到的两个步骤。

看到这就是我所做的。

  1. 添加了一个加载项并在其 Exec 中执行此操作

    public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
        {
            handled = false;
            if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if(commandName == "testAddin.Connect.testAddin")
                {
                    handled = true;
                    ToolBox tlBox = _applicationObject.ToolWindows.ToolBox;
                    ToolBoxTab tlBoxTab = null;
                    tlBoxTab = tlBox.ToolBoxTabs.Add("Test Controls");
    
    
                    tlBoxTab.Activate();
                    tlBoxTab.ToolBoxItems.Add("TestControls", @"C:\testLib.dll", vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);
    
           /////
             }
    

……但什么也没发生。“测试控制”选项卡在那里,但没有控制。当我尝试对 System.Configuration.Install.dll (在 [root]/Windows/Microsoft.Net/Framework/[dotnetVersion]/) 文件夹中找到)执行相同操作时..控件完美加载..但不是当我的自定义控件dll 被指向。

请帮我。我想在每次 IDE 启动时添加这些控件(如 Telerik 控件)。我是 Visual Studio 的这种可扩展性项目类型的新手。

请帮忙....

4

2 回答 2

1

试试Visual Studio 工具箱管理器。我有自己的 VS2010 更新版本(VS2010 的 DTE 是“VisualStudio.DTE.10.0”)。

于 2012-07-04T07:56:08.150 回答
0

由于您将使用安装程序部署控件,因此我建议使用Toolbox Controls Installer,它与 Visual Studio SDK 一起提供,可以轻松集成到 Wix 中;通过这种方式,您可以创作您的 Wix 设置项目,包括您的程序集并仅引用上述自定义操作以进行工具箱注册。

于 2012-07-04T13:56:49.393 回答