2011-08-02 35 views
2

我在主表單上有地圖控件。問題是,當表單設計者生成代碼時,用新值覆蓋變量(RouteOverlay和MarkerOverlay)的值,我不希望這樣。c#表單設計器 - 生成的代碼問題

生成的代碼

//Map.cs 
RouteOverlay = new GMapOverlay(this, "routes"); 
MarkerOverlay = new GMapOverlay(this, "markers"); 

生成的代碼之後之前

//MainForm.designer.cs 
this.map1.MarkerOverlay = ((GMap.NET.WindowsForms.GMapOverlay)(resources.GetObject("map1.MarkerOverlay"))); 
this.map1.RouteOverlay = ((GMap.NET.WindowsForms.GMapOverlay)(resources.GetObject("map1.RouteOverlay"))); 

回答

1

添加[DesignerSerializationVisiblity(DesignerSerializationVisiblity.Hidden)]的性能。
這將完全阻止設計者保存它們。

+0

謝謝,它的工作原理。 – PATO7

+0

請注意,您在設計器中所做的任何更改都不會被保存。考慮添加'[Browsable(false)]' – SLaks

+0

如果你想能夠決定是否序列化一個屬性(例如,只有當它的值不同於默認值時纔會序列化),只需添加一個當屬性必須被序列化時名爲ShouldSerializeMarkerOverlay的方法返回true,否則返回false。 –