2012-07-13 118 views
0

我有一堆用於我的項目的路徑。當您使用應用程序設置時,您可以將設置對象提供給代碼爲PropertyGrid1.SelectedObject = My.Settings()PropertyGridVisual Studio 2010 - 在項目設置中使用編輯器FileNameEditor

我讀了你能提供一個對象(在這種情況下,自定義對象,而不是My.Settings這個信息:

<Editor(GetType(System.Windows.Forms.Design.FileNameEditor), _ 
     GetType(System.Drawing.Design.UITypeEditor))> 

爲了應用打開了文件瀏覽器的編輯時,您使用PropertyGrid。那是偉大的和工作。

有Visual Studio 2010的UI中做這樣的事情的任何可能性,以與應用程序設置使用?

我米恩,我意識到設置屬性的類型爲System.Windows.Forms.Design.FileNameEditor將設置其類型而不是它的編輯器,這很簡單。我也試圖設置System.Windows.Forms.Design.FileNameEditor作爲該屬性的提供者,但沒有運氣。

我已經打開文件Settings.Designer.vb,我手動添加一行:

<Editor(GetType(System.Windows.Forms.Design.FileNameEditor), _ 
     GetType(System.Drawing.Design.UITypeEditor))> 

到我要顯示一個文件選擇器和作品的屬性。問題是該文件是自動生成的,不應該被編輯。

如何才能繼續使用適用於Visual Studio 2010的過程來重複該行爲?

回答

1

只需將應用程序設置讀入您自己的類並將該類指定給propertygrid。我把這個從我的項目之一編輯幾分:

Call MyFilenameClass 
<Editor(GetType(System.Windows.Forms.Design.FileNameEditor), GetType(System.Drawing.Design.UITypeEditor)), _ 
    Browsable(True), _ 
    DefaultValue(""), _ 
    Category("File"), DisplayName("Filename"), Description("Select the file.")> _ 
    Public Property MyFileName As String = My.Settings.MyFilename 
End Class 

因此,在創建類時,MyFileName的將有My.Settings.MyFilename的價值。在你的Form_Closing中,你將需要把你的價值回到應用程序設置並保存它:

My.Settings.MyFilename = "class name in here".MyFilename 
My.Settings.Save 
+0

這是我說的關於編輯自動生成文件的直截了當的解決方案。我希望在VS2010中找到工具和/或選項,因爲我試圖使用的編輯器是.Net框架中提供的默認編輯器。這樣,我會保持使用正確的編輯器自動生成的設置。換句話說,我覺得沒有必要提供默認編輯器的自定義代碼(只需指出要使用哪個編輯器,VS2010會爲該屬性添加適當的元)。無論如何,你的答案+1。 – Sebastian 2012-09-13 13:48:29

相關問題