[英]C# WinForms FlowLayoutPanel locking child controls
我有一个包含某些元素的基本表单,如下所示:
-pnlSearch类型Panel
:搜索按钮
-类型的pnlActions FlowLayoutPanel
:添加,编辑,删除,导出等..按钮
什么都没有锁定,两个面板的修饰符均为“ Private
”,按钮的修饰符为“ Protected
FlowLayoutPanel
用于自定义子窗体中的选项(例如,删除删除选项),而不会留空,因为元素将相应地流动。
在子窗体中,只能使用搜索按钮。 pnlActions
中的按钮在pnlActions
被锁定,但是通过检查属性Locked = False
和Modifiers= Protected
尝试将pnlActions的修饰符设置为Protected
但是仍然相同。
知道是什么原因导致这种行为吗?
除了内部控件布局之外, Panel
和FlowLayoutPanel
之间有什么区别?
如果我手工编码过任何东西,我都会张贴代码示例,但这些都是由设计师生成的
我会在Win7上使用VS 2013,如果那很重要
提前致谢
这是设计者的问题。 如果您通过代码进行更改,所有的工作都将...由于该平台不再由Microsoft维护,因此无法解决该问题。
我知道这是一个老问题,但如果有人需要,我会分享一个可能的解决方案。
我们将创建一个继承FlowLayoutPanel
的类,我将其命名为FlowLayoutPanelHeritable
。 您可以将其放在您认为合适的名称空间中,在本示例中,名称空间为WindowsFormsApp
。
using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;
namespace WindowsFormsApp
{
[Designer(typeof(ParentControlDesigner))]
public class FlowLayoutPanelHeritable : FlowLayoutPanel
{
}
}
首先,我们必须在Protected
FatherForm
设置FlowLayoutPanel
的修改器。 现在,我们必须进行修改的代码FatherForm
,访问FatherForm.designer.cs
。 我们将更换的每个实例FlowLayoutPanel
,由FlowLayoutPanelHeritable
(在创作和变量初始化)。 然后,我们保存并重新编译。
现在,如果您访问ChildForm
,您将看到您在设计时不再具有修改限制。
重要提示:如果您想编辑FatherForm
,你将有访问FatherForm.designer.cs
和替换所有FlowLayoutPanelHeritable
到FlowLayoutPanel
一次; 完成编辑后,执行相反的过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.