簡體   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