Es ist normal. SetToolTip
Methode akzeptiert String und es wird der Text angezeigt, der aus der Ressource basierend auf der aktuellen Kultur beim Aufruf SetToolTip
abgerufen und die Kultur zur Laufzeit ändern wird keine Auswirkungen auf sie haben. Also hier, da die Einstellung Tooltip im Konstruktor Ihrer Schaltfläche ausgeführt wird, wird die Kultur des Threads in diesem Moment verwendet.
Wenn Sie Ihren Tooltip wollen dynamisch die aktuelle Kultur verwenden automatially, als Option können Sie einen Dummy-Text als Tooltip gesetzt (den Tooltip zu ermöglichen) und dann Handhabung Popup
Fall Tooltip, weisen Sie den lokalisierten Wert auf den Tooltip:
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);
}
}
Hinweis: Wenn Ihr Ziel ist die Tooltip nicht machen dynamisch lokalisierbar ist und Sie nur eine lokalisierbare Tooltip, die Art und Weise Localizable
Eigenschaft Form
Werke, um Designer Ihrer ExtendedButton
Komponente gehen und setzen Localizable
Eigenschaft auf true
und dann verwenden verschiedene Tooltip-Texte für verschiedene Anwendungen.
Denken Sie jedoch daran, dass der Wert zur Laufzeit nicht dynamisch geändert werden kann, nachdem die Komponente erstellt wurde.
Hier ein Beispiel:
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fa-IR");
var f = new Form();
f.Controls.Add(new ExtendedButton());
f.Show();
Können Sie uns zeigen, wie Sie die Fadenkultur ändern? –