我正在开发一个继承自System.Windows.Form.Panel的控件。 这个想法非常简单:面板底部的工具栏,一个可以放下任何控件的区域。对于该区域,我考虑一个面板,使该面板公开,并且允许用户仅在那里放弃控件。我不知道你是否有人使用过kypton的组合框?你有一个组框控件和一个面板,如果你看到文档大纲视图,你会注意到这样的事情:kryptongroupbox1 | - > PANEL1。并且所有控件都放在面板1中。 我想做那样的事。 有什么想法吗?
这是我的代码:
public partial class GridPanel : Panel
{
private System.Windows.Forms.ToolStripButton cb_print;
private System.Windows.Forms.ToolStripButton cb_excel;
private System.Windows.Forms.ToolStrip tool;
private System.Windows.Forms.ToolStripButton cb_filter;
private System.Windows.Forms.ToolStripButton cb_ocultar;
private System.Windows.Forms.ToolStripButton cb_restaurar;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripLabel lb_cantrow;
[Description("The internal panel that contains group content.")]
[Localizable(false)]
[Category("Appearance")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Panel Panel { get; set; }
public GridPanel()
{
InitializeComponent();
InitCustomComp();
this.Panel = new Panel{ Dock = DockStyle.Fill, BackColor = Color.Transparent };
this.Controls.Add(Panel);
// this.Controls.Add(new KryptonDataGridView { Dock = DockStyle.Fill });
}
private void InitCustomComp()
{
// the creation of the toolbar
}
public GridPanel(IContainer container)
{
container.Add(this);
InitializeComponent();
}
}
用我的方法我可以在自定义控件中删除控件但是当我停靠(填充)其中一个时它适合我工具栏后面的所有控件区域
很抱歉,如果解释有点混乱。英语不是我的母语。
答案 0 :(得分:0)
可能将控件添加到外部面板而不是内部面板。
此代码项目文章中解释了此问题:Designing Nested Controls。 Henry Minute解释了他是如何解决这个问题的。