关于winform的用户控件问题
我做了一个用户控件,里面就一个Panel,我在其他界面上拖放了这个用户控件,有什么办法往这个用户控件的Panel里面再拖放别的控件呀,用户控件里的Panel的Modifiers属性已经设置成Public了,求高手指点啊
------解决方案--------------------一般默认情况下,子控件都不能进行
“二次设计”的,也就是说,你自定义一个UserControl,在里面放一个Panel,编译后,将这个UserControl拖进设计器,它里面的Panel是
不可再设计的,你在设计器中不能再编辑这个Panel。
解决方法:
1.在项目引用中,添加“System.Desgin.dll”的引用;
2.引用命名空间“System.Windows.Forms.Desgin”;
3.自定义一个UserControl控件UserControl1,将一个Panel控件拖进去,生成的代码:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
}
此时设计界面:
将此Panel设为Public
4.为此UserControl1控件增加一个Desginer(网上查其含义)
class UserControl1Designer : ScrollableControlDesigner
{
public override void Initialize(IComponent component)
{
base.Initialize(component);
if (this.Control is UserControl1)
{
this.EnableDesignMode((
(UserControl1)this.Control).panel1, "可二次设计的子控件"); //使panel1可二次设计
}
}
}
注意this.EnableDesignMode的意义: