视觉继承 - 将设计器中的控件添加到 TableLayoutPanel 中托管的面板中

问题描述 投票:0回答:2

我正在制作一个基本表单(WinForm),用作我的一般表单设计的蓝图,我希望面板(屏幕截图中的 P_Content)位于子表单中放置控件的位置。

但是说P_Content被锁定在子窗体中,在代码中添加控件显然可以,但在设计视图中却不行。

面板是公共的,其父容器也是公共的 (

TableLayoutPanel
)。

这似乎很基本,但我似乎找不到任何答案为什么会发生这种情况。

P_Content 是一个大的空白空间。

Screenshot

c# .net winforms inheritance windows-forms-designer
2个回答
8
投票

看来您已经在

Panel
中主持了
TableLayoutPanel
。根据 文档,您应该避免
TableLayoutPanel
的视觉继承:

TableLayoutPanel
控件不支持视觉继承 Windows 窗体设计器。派生中的
TableLayoutPanel
控件 类在设计时显示为“锁定”。

该行为不仅限于

TableLayoutPanel
,并且有记录,其他一些控件也不支持从基本表单进行视觉继承,并且将始终为只读,并在继承的表单中显示为锁定,无论您使用什么修饰符:

并非所有控件都支持从基本表单进行视觉继承。这 以下控件不支持本文中描述的场景 演练:

  • WebBrowser
  • ToolStrip
  • ToolStripPanel
  • TableLayoutPanel
  • FlowLayoutPanel
  • DataGridView

继承形式中的这些控件始终是只读的,无论 您使用的修饰符(私有、受保护或公共)。


-3
投票

他妈的麦克风!!!!!!!!!!!!

© www.soinside.com 2019 - 2024. All rights reserved.