視覺工作室最受歡迎和討厭的特徵之一必須是表單設計師。Visual Studio winforms設計師的隱藏特徵
創建簡單的表單/用戶控件佈局通常很簡單。設置屬性和添加事件很容易。
設置工具箱以使用自己的控件可能會更困難,讓ToolBoxIcons顯示可能會很痛苦。通過可視化繼承來使用第三方組件可能會導致設計人員失敗。在指定設計中使用多重繼承可能非常困難。
那麼,你最喜歡的'隱藏'和或明顯的視覺工作室設計師功能。
視覺工作室最受歡迎和討厭的特徵之一必須是表單設計師。Visual Studio winforms設計師的隱藏特徵
創建簡單的表單/用戶控件佈局通常很簡單。設置屬性和添加事件很容易。
設置工具箱以使用自己的控件可能會更困難,讓ToolBoxIcons顯示可能會很痛苦。通過可視化繼承來使用第三方組件可能會導致設計人員失敗。在指定設計中使用多重繼承可能非常困難。
那麼,你最喜歡的'隱藏'和或明顯的視覺工作室設計師功能。
CTRL
並拖動控制複製它。注意:要小心,如果你的控制有 ,是由 設計師創建一個事件處理程序,它會在您 新創建的控制與事件 處理器以及舊的控制關聯。
使用鍵盤快捷鍵F7從設計視圖到代碼視圖去,和Shift-F7從代碼視圖設計器視圖中去。我經常使用它
「文檔大綱」窗口對重型設計師的使用非常重要。這使您可以對輪廓中的控件進行重新排序,以將它們置於前面或發回。當您使用對接控件時,它特別有用。你也可以將一個子控件移動到另一個父控件上,或者將其從一個容器控件中移出,或者將一個父控件移動到一個容器中等等。
View -> Other Windows -> Document Outline
View -> Toolbars -> Layout
Shift F7在代碼視圖和設計器視圖之間切換。 – CodingBarfield 2010-11-17 12:42:14
文檔大綱正是我正在尋找的,並且無法在Googlewebz上的其他任何地方找到。 – orfdorf 2015-05-02 00:32:37
用戶控件的所有屬性都將由設計者顯示,並填充數據類型的默認值。 將Hidden的DesignerSerializationVisibility屬性添加爲值不會使用任何默認值填充此屬性。
<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>
這是將設計器代碼的音量降到最低的好方法。另一個選項是DefaultValue。
<DefaultValue(somevalue)>
這將設置設計者使用給定值作爲選擇的默認值。
如果您不使用這些屬性,設計人員將覆蓋支持字段值和初始值設定值。
另外一個,可以是很難找到: 菜單 - 視圖 - Tab順序
你可以通過點擊你的域更改選項卡順序。該選項僅在設計器處於活動狀態時可見。
另一個提示是設置
我嘗試在表單初始化時嘗試編寫自己的事件處理程序方法,而不是讓設計師處理它。我注意到設計師會不時地失去這些活動。通過編碼你自己,確保他們堅持。
myButton.Click += new System.EventHandler(this.myButtonClick)
可以縮短新的.NET版本:myButton.Click + = this。myButtonClick – pettys 2012-10-16 16:06:23
破碎設計師
有時Visual Studio將不會顯示開關設計/編譯選項。我還沒有確定究竟是什麼原因導致了這種情況,但使用devexpress混合vb.net和c#項目似乎是一個原因。
只要visual studio運行它就不會突然看到我的forms/usercontrols可以被設計。關閉visual studio並更改項目文件通常會有所幫助。
最初的項目文件包含
<Compile Include="cboTargetGroupFlights.cs">
改變這種以再重新打開該項目造成的Visual Studio來重新檢查所有形式/用戶控件並沒有再次展現設計師。
<Compile Include="cboTargetGroupFlights.cs">
<SubType>Component</SubType>
</Compile>
您是否知道在雙擊解決方案視圖中的某些內容後,您可以將代碼視圖設置爲默認值。右鍵單擊您的文件,然後選擇打開方式...並使用設爲默認值按鈕。
您可以將自己的對接線添加到UserControls。
此處下面的類被稱爲CenterSquare
,並添加了一個名爲CenterSquareSnapLines
的設計器,該設計器提供控件內部的捕捉線列表。如果你有自己的控件渲染得更小,然後只是他們的邊框,你現在可以添加自己的線條。
public class CenterSquareSnapLines : ControlDesigner
{
public override System.Collections.IList SnapLines
{
get
{
ArrayList snapLines = base.SnapLines as ArrayList;
CenterSquare c = this.Control as CenterSquare;
if (c != null)
{
snapLines.Add(new SnapLine(SnapLineType.Left, c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Right, c.Height - c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Top, c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Bottom, c.Width - c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Top, 5));
}
else
{
//Debug message here!
}
return snapLines;
}
}
}
[Designer(typeof(CenterSquareSnapLines))]
public partial class CenterSquare : UserControl
{
//implementation goes here
}
另請參見:http://stackoverflow.com/a/945486/27472 – 2011-12-15 15:38:02
您是否知道您實際上可以調試設計器?
您可以啓動一個解決方案兩次並使用「附加到進程」調試運行您的設計器控件的devenv環境。這對調試「奇怪的」設計器問題尤其有用,否則它會給出非常少的信息。
我用這個來確定一個設計器問題,以便開始一些遠程處理,並且不會觸發未處理的異常並破壞設計器。我在desigerview上看到的一些視覺工作室內部幫助類都崩潰了。
當WinForms項目設計器在窗體或用戶控件上打開並且具有嵌套的子控件時,可以通過按下Escape鍵將焦點從當前聚焦的子控件移到其父控件。再次按下Escape鍵將焦點移至其父項等,直至您最終到達頂部。
無法對ToolBoxBitmap達成更多共識 - 即使在嘗試了十幾種不同的「解決方案」之後,我從來沒有得到過這樣的工作。開始認爲這是一個神話... – 2010-11-04 16:26:05
關於該toolboxbitmap。只有在正確設置並且將DLL引用設置爲單獨的DLL並且不在同一個解決方案中時,才能正常工作。 – CodingBarfield 2010-11-05 09:33:50