정상입니다. SetToolTip
메서드는 문자열을 받아들이고 SetToolTip
을 호출 할 때 현재 문화권을 기반으로 리소스에서 추출한 텍스트를 표시하고 런타임에 문화권을 변경해도 영향을 미치지 않습니다. 버튼의 생성자에서 툴팁 설정이 수행되므로 그 시점의 스레드 문화가 사용됩니다. 당신이 당신의 툴팁이 동적으로 automatially 현재의 문화를 사용하는 옵션으로 사용하면 툴팁과 같은 더미 텍스트를 설정할 수 있습니다 (툴팁을 활성화) 다음 툴팁의 Popup
이벤트를 처리하려면
는 툴팁에 지역화 된 값을 할당 :
를
class ExtendedButton : Button
{
private ToolTip _tooltip = new ToolTip();
public ExtendedButton()
{
_tooltip.Popup += new PopupEventHandler(_tooltip_Popup);
_tooltip.SetToolTip(this, "DUMMYTEXT");
}
void _tooltip_Popup(object sender, PopupEventArgs e)
{
if (_tooltip.GetToolTip(this) != StringResources.MyLocalizedTooltipString)
_tooltip.SetToolTip(this, StringResources.MyLocalizedTooltipString);
}
}
참고 : 목표는 동적 지역화 도구 설명을하지 않고 당신은 단지 지역화 도구 설명, Form
작품의 Localizable
속성은, 당신의 ExtendedButton
구성 요소의 디자이너로 이동 true
에 Localizable
속성을 설정하고 사용하는 방법을 원하는 경우 다른 cltures에 대한 다른 툴팁 텍스트.
그러나 구성 요소를 만든 후 런타임에 값을 dunamically 변경할 수는 없습니다. 여기
은 예입니다
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fa-IR");
var f = new Form();
f.Controls.Add(new ExtendedButton());
f.Show();
스레드 문화를 어떻게 바꿀 수 있습니까? –