繁体   English   中英

C#WinForms FlowLayoutPanel锁定子控件

[英]C# WinForms FlowLayoutPanel locking child controls

我有一个包含某些元素的基本表单,如下所示:
-pnlSearch类型Panel :搜索按钮
-类型的pnlActions FlowLayoutPanel :添加,编辑,删除,导出等..按钮

什么都没有锁定,两个面板的修饰符均为“ Private ”,按钮的修饰符为“ Protected

FlowLayoutPanel用于自定义子窗体中的选项(例如,删除删除选项),而不会留空,因为元素将相应地流动。

在子窗体中,只能使用搜索按钮。 pnlActions中的按钮在pnlActions被锁定,但是通过检查属性Locked = FalseModifiers= Protected

尝试将pnlActions的修饰符设置为Protected但是仍然相同。

知道是什么原因导致这种行为吗?
除了内部控件布局之外, PanelFlowLayoutPanel之间有什么区别?
如果我手工编码过任何东西,我都会张贴代码示例,但这些都是由设计师生成的

我会在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和替换所有FlowLayoutPanelHeritableFlowLayoutPanel一次; 完成编辑后,执行相反的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM