我在我的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);
}
}
我可以直接从控件中访问工具提示文本吗?
答案 0 :(得分:0)
要在表单中的所有组件上设置工具提示文字,例如button1
等。我认为您应该使用以下内容:
foreach (var control in this.Controls) {
ToolTip1.SetToolTip(this.control, "Your text");
}
那是因为ToolTip没有Text属性,而且它的设置与上面的例子类似。
另请参阅ToolTip Class和ToolTip.SetToolTip Method以及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)
应该返回什么。如果它只是翻译过的字符串,那么我的exmple中不需要(string)
部分。
希望它有所帮助。
编辑:修复了第二个示例,说明如何设置和获取特定控件的工具提示文本。