2012-11-13 58 views
1

我有一個.Net用戶控件作爲ActiveX控件公開。現在我想根據用戶的選擇爲本控件提供本地化/全球化。我所做的是我在COM接口中添加了一個名爲「Language」的屬性,以便用戶可以在設計時將該ActiveX控件放置在一個簽名器(如VB6表單)上的語言中。我需要在運行時在ActiveX控件/ Usercontrol構造函數中訪問此設計時屬性「語言」,以便我可以將UI線程文化設置爲適當的文化。但我的問題是我無法在運行時在構造函數中訪問此設計時屬性,因爲它的父類是指用戶控件/ ActiveX控件仍在構建中。有沒有什麼辦法可以在運行時訪問設計時的屬性,這在構造函數中也是如此?訪問.NET ActiveX中的設計時屬性運行期間的用戶控件構造函數

+0

由於控制是首先構造,然後它的屬性設置我不會這麼想。通常,控件會響應正在設置/更改的屬性,並在該位置運行相應的代碼。 –

+0

這是一個非常根本錯誤的方法。你不能只改變線程的文化,這會影響*所有*,而不僅僅是你的.NET代碼。它是一個線程的非託管屬性。相反,文化已經被設置爲用戶的語言。你第一次看到財產的指定價值的機會在它的制定者。 –

回答

0

我必須解決這個間接的方式,大多是這樣的:

  1. 您可以定義一個bool屬性,它應該命名爲Desiging,並且它的默認值設置爲true。
  2. 您在運行應用程序時設置了Designing = false,其中使用了ActiveX。

現在,你可以做一些特殊的不同模式。

+1

你好,請格式化你的答案,使其更具可讀性。 – Chaithanya

相關問題