2014-01-11 28 views
-1

當增加一個控制到設計,或一個新項目,或者在實例化執行時間控制是由框架生成一個安全的名稱......像:Textbox1Textbox2Textbox3等..如何將安全名稱分配給自己的實例,如框架呢?

我想用我自己的類型重新生成安全命名(它不從控件繼承,但我不知道這是否非常重要)。

這是一個例子類:

NotInheritable Class GlobalHotkey : Inherits NativeWindow : Implements IDisposable 

    Public property Name 

End Class 

然後在執行時,我想這樣做:

dim MyObject as New GlobalHotkey(Parameters) 
' Notice that I did not set manually the name property... 


Sub something()... 

    Msgbox(MyObject.Name) 
    ' Desired result: "GlobalHotkey1" 

End sub 
+0

我不記得的細節,但這是一個設計師級功能。您是否熟悉將Designer支持添加到自定義控件?如果不是,那麼我建議你_熟悉。 –

+1

'...或者在執行時實例化一個安全名稱由Framework生成...'它怎麼可能。如果你編寫代碼'Dim myobject As Control',這個名稱已經被命名爲'myobject'。 Designer在.vb文件中生成代碼.... – Fabio

回答

1

如果你的東西(不能判斷它是一個類,控件或組件)從Component繼承或實現IComponent vb/vs將處理爲您創建一個唯一的名稱並將其寫入設計器文件(假設您已正確標記序列化的東西)。

另一種選擇是在你的課堂上使用TypeConverter並自己處理。

主要是這些操作中的任何一個阻止FooBar被添加兩次到設計器文件,然後被饋送到InitializeComponent過程中的表單。它與你的運行時示例沒有多大關係,除非你想序列化Parameters以確保它是唯一的,只有一個鍵處理程序處理給定的鍵組合。

相關問題