Как я могу создать локализуемый UserControl?

1

Для простоты у меня есть 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 локализуемым?

Теги:

2 ответа

0
Лучший ответ

Я отвечу на свой вопрос после нескольких часов проб и ошибок.

  1. Требуется только атрибут Localizable.
  2. Объявление полей частной собственности должно превышать атрибуты.

Рабочий код, который поддерживает локализацию 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
0

Вы локализуете UserControl точно так же, как локализуете форму. Вы устанавливаете для свойства Localizable значение true и укажите язык. Локализация происходит во время выполнения. Прохождение этого процесса доступно здесь.

Что касается локализации пользовательских свойств, вы уже сделали все, добавив атрибут Localizable в свое определение.

Проблема здесь в том, что UserControl в форме обрабатывается независимо от формы контейнера. Он не наследует настройки локализации формы, вы должны установить UserControl отдельно.

  • 0
    Спасибо Грей, мне удалось найти решение

Ещё вопросы

Сообщество Overcoder
Наверх
Меню