1
我爲WinForms控件編寫了一個自定義集合編輯器。其核心代碼如下所示:在WinForms中爲自定義CollectionEditor表單設置位置
internal class MyCollectionEditor : CollectionEditor
{
public MyCollectionEditor(Type type) : base(type) { }
protected override System.ComponentModel.Design.CollectionEditor.CollectionForm CreateCollectionForm()
{
System.ComponentModel.Design.CollectionEditor.CollectionForm myForm = base.CreateCollectionForm();
#region Adjust the property grid
PropertyGrid myPropGrid = GetPropertyGrid(myForm);
if (myPropGrid != null)
{
myPropGrid.CommandsVisibleIfAvailable = true;
myPropGrid.HelpVisible = true;
myPropGrid.PropertySort = PropertySort.CategorizedAlphabetical;
}
#endregion
return myForm;
}
}
我需要設置集合編輯器表單自定義大小和位置,但我無法找到一個方法來做到這一點。看來集合編輯器表單總是由VS定位到其默認位置。有辦法做我需要的嗎?
題外話,但因爲你是自定義集合編輯器,你也可能會發現這篇文章有幫助:[如何啓用'CollectionEditor'對話框中屬性的默認值](http://stackoverflow.com/questions/35517211/how-to-enable-default-values-for-屬性在收藏編輯器對話框) –
我嘗試使用一個屬性DesktopBounds恢復表單位置,但對於DesktopBounds屬性的每個賦值都會增加for大小。你知道爲什麼發生這種情況嗎? – TecMan
@TecMan你也可以使用'SetDesktopBounds'沒有任何問題,但是你應該首先將'StartPosition'設置爲'FormStartPosition.Manual'。 –