[英]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.