.NET VS2005 WinForms:如何将用户控件放到表单上?

时间:2008-10-24 14:27:24

标签: visual-studio winforms assemblies

我在程序集dll中编写了一个 的UserControl后代。

如何删除表单上的控件?

namespace StackOverflowExample
{
   public partial class MonthViewCalendar : UserControl
   {
      ...
   }
}

我在解决方案资源管理器中的引用节点下添加了对程序集的引用,但我的工具箱中没有出现新控件

如何让控件出现在工具箱中,以便将其放在表单上?


更新1

我尝试在Visual Studio选项中构建程序集:

工具 - > 选项... - > Windows窗体设计器 - > AutoToolboxPopulate = true

在新解决方案的工具箱中未显示控件。

注意:我不知何故错误地写了“......在装配dll中不是 ......”。我不知道我是怎么设法写的,当它在程序集dll中具体 时。当他们在同一个项目中时,控件已经神奇地出现了,但现在不是它是一个不同的项目/解决方案。


更新2:回答

  1. 右键点击工具箱
  2. 选择选择项目...
  3. .NET Framework组件标签
  4. 选择浏览...
  5. 浏览到包含该控件的程序集dll 文件,然后选择打开

    注意:程序集中的控件将以静默方式添加到.NET Framework组件列表中。

  6. 检查您希望在工具箱中显示的每个控件
  7. 选择确定

5 个答案:

答案 0 :(得分:4)

通常,在构建项目时,您的用户控件将显示在顶部的工具箱中。通常,您将看到一个新窗格,其中包含每个程序集和控件。

如果没有发生这种情况,您还可以通过右键单击工具箱,选择选择项目,然后在 .NET Framework组件下浏览来添加您的控件汇编,添加它,然后确保检查您的控件。

答案 1 :(得分:1)

我注意到,当您的项目(包含控件/组件)与您的解决方案位于同一文件夹中时,用户控件和组件仅由vs2005自动添加到工具箱中。当此项目位于子文件夹vs2005中时,不会在工具箱中添加控件和组件。

答案 2 :(得分:0)

您需要构建包含您已创建的控件的项目,并确保为工具箱重新设置了选项。如果你没有从默认值更改它,它应该工作;否则,请转到工具 - >选项... ,然后选择Windows窗体设计器组。确保 AutoToolboxPopulate 选项设置为 true

您无需ToolboxItemAttribute即可使用。如果提供组件与消耗组件位于同一解决方案中,它应出现在工具箱中。如果提供程序集不是解决方案的一部分,则可以通过从工具箱上下文菜单中选择**选择项目... *并直接添加程序集,手动将程序集添加到工具箱。如果您希望工具箱自动选择它们,则需要使用ToolboxItemAttribute

答案 3 :(得分:0)

我偶然发现了一些问题。最后,只需重建和重新引用即可。我更喜欢从UserControl继承。它让我的生活更简单;)

例如,如果要创建“圆角边框”标签,请执行以下操作:

using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace YourUIControls
{
    [DefaultProperty("TextString")]
    [DefaultEvent("TextClick")]
    public partial class RoundedLabel : UserControl
    {
         public RoundedLabel()
         {
             InitializeComponent();
         }
         protected override void OnPaint(PaintEventArgs e)
         {
             //Draw your label here…
         }
     }
}

编译并添加对输出的引用。您可以将其拖到工具箱中,然后再拖到Designer中。

答案 4 :(得分:-1)

将ToolboxAttribute添加到您的班级。