How to create a UserControl that you can drop other controls in it?(如何创建一个可以将其他控件放入其中的 UserControl?)
问题描述
In WinForms, how can I create a UserControl
that when I put on my form I can then add other controls inside by dragging them from the toolbox, the same way as with all containers controls (panels, group boxes, etc)? I've tried to add controls by dropping them in my control but then when I move my control the controls I added stay right where they are, which wouldn't happen if instead of my control I would use a Panel
(the other controls would move with the panel).
Unlike a Panel
control for example, a UserControl
does not act as a container control once it is placed on another form. There is full design-time support while you are designing the UserControl
itself, but its default behavior does not allow it to act as a constitutent control after it has been placed on another form. This is why you are unable to add other controls to it by dragging them from the toolbox.
In order to add this type of behavior to a UserControl
, you need to add the DesignerAttribute
to the definition of your custom UserControl
class. For example:
using System.ComponentModel;
using System.ComponentModel.Design;
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public class MyUserControl : System.Windows.Forms.UserControl
{
//...your code here
}
(See the relevant MSDN article for further reading.)
If you want to implement full designer support for nested controls inside your UserControl
, this is slightly more difficult. For a more comprehensive discussion, see this article on CodeProject.
这篇关于如何创建一个可以将其他控件放入其中的 UserControl?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何创建一个可以将其他控件放入其中的 UserControl?
基础教程推荐
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- SSE 浮点算术是否可重现? 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01