Winforms ToolTip 获取和更改所有分配的工具提示
Winforms ToolTip get and change all assigned tooltips
我正在循环我的 WinForms 控件并将它们的 Text 和 ToolTipText 提供给我的翻译服务进行翻译。
示例:
foreach (ToolStripItem item in toolStrip.Items)
{
if (item is ToolStripMenuItem)
{
item.ToolTipText = Translate(item.ToolTipText);
item.Text = Translate(item.Text);
}
}
但是,我无法访问使用 WinForms ToolTip 控件设置的工具提示。
我知道我可以循环遍历组件。我可以获取和设置他们的工具提示吗?
protected void TranslateToolTip(ToolTip toolTip)
{
foreach (var component in toolTip.Container.Components)
{
// Doesn't work. No ToolTipText property
component.ToolTipText = Translate(component.ToolTipText);
}
}
我可以直接从控件访问工具提示文本吗?
在表单中的所有组件上设置工具提示文本,如 button1
等。我认为你应该使用这样的东西:
foreach (var control in this.Controls) {
ToolTip1.SetToolTip(this.control, "Your text");
}
那是因为工具提示没有文本 属性,它的设置与上面的示例相同。
另见 ToolTip Class and ToolTip.SetToolTip Method and ToolTip.GetToolTip Method
或者您可以尝试类似的方法,但不确定这是否有效:
protected void TranslateToolTip(ToolTip toolTip)
{
foreach (var component in toolTip.Container.Components)
{
// Doesn't work. No ToolTipText property
// component.ToolTipText = Translate(component.ToolTipText);
toolTip.SetToolTip(component , (string)Translate(toolTip.GetToolTip(component));
}
}
我不知道 Translate(component.ToolTipText)
应该是什么 return。如果它只是翻译后的字符串,那么我的示例中就不需要 (string)
部分。
希望对您有所帮助。
编辑:修复了第二个示例以显示如何从特定控件设置和获取工具提示文本。
我正在循环我的 WinForms 控件并将它们的 Text 和 ToolTipText 提供给我的翻译服务进行翻译。 示例:
foreach (ToolStripItem item in toolStrip.Items)
{
if (item is ToolStripMenuItem)
{
item.ToolTipText = Translate(item.ToolTipText);
item.Text = Translate(item.Text);
}
}
但是,我无法访问使用 WinForms ToolTip 控件设置的工具提示。
我知道我可以循环遍历组件。我可以获取和设置他们的工具提示吗?
protected void TranslateToolTip(ToolTip toolTip)
{
foreach (var component in toolTip.Container.Components)
{
// Doesn't work. No ToolTipText property
component.ToolTipText = Translate(component.ToolTipText);
}
}
我可以直接从控件访问工具提示文本吗?
在表单中的所有组件上设置工具提示文本,如 button1
等。我认为你应该使用这样的东西:
foreach (var control in this.Controls) {
ToolTip1.SetToolTip(this.control, "Your text");
}
那是因为工具提示没有文本 属性,它的设置与上面的示例相同。
另见 ToolTip Class and ToolTip.SetToolTip Method and ToolTip.GetToolTip Method
或者您可以尝试类似的方法,但不确定这是否有效:
protected void TranslateToolTip(ToolTip toolTip)
{
foreach (var component in toolTip.Container.Components)
{
// Doesn't work. No ToolTipText property
// component.ToolTipText = Translate(component.ToolTipText);
toolTip.SetToolTip(component , (string)Translate(toolTip.GetToolTip(component));
}
}
我不知道 Translate(component.ToolTipText)
应该是什么 return。如果它只是翻译后的字符串,那么我的示例中就不需要 (string)
部分。
希望对您有所帮助。
编辑:修复了第二个示例以显示如何从特定控件设置和获取工具提示文本。