【问题标题】:Multiple Controls onto a single control c# winforms多个控件到单个控件上 c# winforms
【发布时间】:2018-06-03 15:09:59
【问题描述】:

有什么办法可以制作一个像Panel 这样的控件,并在其中插入几个其他组件,比如Label

我制作了一个自定义控件,并将工具箱中的一些控件添加到它的 [Designer] 中,尽管在将自定义控件插入主项目时这些项目不可见。

【问题讨论】:

    标签: c# winforms visual-studio controls


    【解决方案1】:

    如果您的用户控件和主项目都属于同一个解决方案,则用户控件将自动出现在设计器工具箱的顶部。

    但是,如果您的用户控件位于另一个解决方案中,并且您的主项目引用了 dll,那么您需要手动将控件添加到工具箱。

    在您的主项目上打开设计器,右键单击工具箱并选择Choose Items...

    从 .NET Framework 组件中,单击浏览并选择您的用户控件的 DLL。

    点击确定。

    点击确定。

    您的程序集中的所有公共控件现在应该在工具箱中可见。

    【讨论】:

    • 感谢您的回复。虽然实际上我尝试制作一个类似Panel 的控件并在面板中放置更多元素。这样这个控件将成为一个面板,其中包含多个标签作为一个组件。尽管它们都在同一个解决方案中。
    • @Dextroy 控件是复合控件(比如你的)还是纯渲染的,过程都是一样的
    【解决方案2】:

    我终于明白了。

    基本上

    • 新建一个custom control
    • 然后(进入新制作的自定义控件的设计器中)添加一些 工具箱中的元素,如标签。它们只会显示为框。
    • 最后进入自定义控件的代码,添加
      this.Controls.Add(label1)。我在设计者中发现了这一点 表单将控件插入另一个控件。

    MultiControl.cs:

    public partial class MultiControl : Panel
    {
        public MultiControl()
        {
            InitializeComponent();
            this.Controls.Add(label1);
        }
     } 
    

    这里是设计器代码:

    partial class MultiControl
    {
        private System.Windows.Forms.Label label1;
    
        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多