問題描述:
一個窗體集成父窗體,發現無法直接拖動修改的控件,比如修改大小等
特征:
不禁使父窗體控件,就算新加一個控件也會這樣:鼠標放到控件移動手方塊上會出現一個“繼承的控件”的tooptip,
異常正常情況
原因:
父窗體設置了WindowState屬性為:System.Windows.Forms.FormWindowState.Maximized
在父窗體的designer.cs中有這么一句話:
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
解決辦法:
一、去掉這句話
二、放在窗體構造函數中,在這句話前面加上判斷,如果VS處於設計模式,就返回
public frmBaseChild() { InitializeComponent(); if (CheckDesingModel.IsDesingMode) return;//如果處於設計模式,返回 this.WindowState = System.Windows.Forms.FormWindowState.Maximized; }
CheckDesingModel類:
internal class CheckDesingModel
{
public static bool IsDesingMode
{
get
{
bool ReturnFlag = false;
if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
ReturnFlag = true;
else if (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv")
ReturnFlag = true;
//if (ReturnFlag)
// Msg.Warning("設計模式");
//else Msg.Warning("非設計模式!");
return ReturnFlag;
}
}
}