为简单起见,我有一个带有标签的UserControl,我希望标签文本可以本地化。 在UserControl中,我创建了一个公共LabelText属性来获取/设置标签文本。
这是我的UserControl的代码
Imports System.ComponentModel
Public Class ctlA
<Browsable(True), _
EditorBrowsable(EditorBrowsableState.Always), _
Localizable(True), _
DefaultValue("dafaultLabel"), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Private _LabelText As String = "label"
Public Property LabelText() As String
Get
Return _LabelText
End Get
Set(ByVal value As String)
_LabelText = value
Label1.Text = value
End Set
End Property
End Class
我可以将UserControl插入到表单中,但是当我为表单选择不同的语言时,我无法本地化LabelText属性。
我该怎么做才能使LabelText属性可以本地化?
答案 0 :(得分:0)
您以与本地化表单完全相同的方式本地化UserControl。您将Localizable
属性设置为true,并指定一种语言。本地化在运行时发生。该过程的演练可用here。
至于使自定义属性可以本地化,您已经通过在其定义中添加Localizable
属性来做正确的事情。
这里的问题是表单上的UserControl被单独处理容器表单。它不会继承表单的本地化设置,您必须单独设置UserControl。
答案 1 :(得分:0)
我会在经过数小时的反复试验后回答我的问题。
支持UserControl本地化的工作代码是:
Imports System.ComponentModel
Public Class ctlA
Private _LabelText As String = "label"
<Localizable(True)>
Public Property LabelText() As String
Get
Return _LabelText
End Get
Set(ByVal value As String)
_LabelText = value
Label1.Text = value
End Set
End Property
End Class