我骑自行车通过我的WinForms控件,并将它们的文本和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);
}
}我可以直接从控件访问工具提示文本吗?
发布于 2015-04-24 14:31:27
要在表单中的所有组件(如button1等)上设置工具提示文本,我认为您应该使用如下内容:
foreach (var control in this.Controls) {
ToolTip1.SetToolTip(this.control, "Your text");
}这是因为ToolTip没有Text属性,而且它的设置与上面的示例类似。
另见ToolTip类、ToolTip.SetToolTip法和ToolTip.GetToolTip法
或者你可以尝试这样的方法,但不确定这样做是否可行:
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)应该返回什么。如果它只是被翻译成字符串,那么我们就不需要在前面的(string)部分了。
希望能帮上忙。
编辑:修正了第二个示例,演示如何设置和从特定控件获取工具提示文本。
https://stackoverflow.com/questions/29839405
复制相似问题