我正在努力解决一件非常棘手的事情。我知道必须有解决方案,但我需要你的帮助。
我正在进行表单翻译(多语言)类(dll)。您可以实例化该类并设置语言。然后,此类枚举所有Form控件并写入包含所有字符串的XML文件。到目前为止,一切都很好。
现在的诀窍:如果有一个ToolTip组件添加到表单,我也想访问控件工具提示,但我找不到通过代码访问ToolTip组件的方法。 任何帮助表示赞赏。
答案 0 :(得分:2)
工具提示不会继承Component
,只会继承Form.Controls
。因此它不包含在Form.components.Components
- 集合中。您可以遍历Nequeo.Reflection.AppDomianHost host = new Nequeo.Reflection.AppDomianHost(@"D:\Development\Version2015\Test\LoadUnload\ConsoleLoadUnload\bin\Debug");
int ret = host.Instance.ExecuteMethod<int>("ConsoleLoadUnload", "ConsoleLoadUnload.Test", "EntryPoint", new object[] { (int)6, (int)6 });
host.Unload();
textBox1.Text = ret.ToString();
以获取工具提示。
答案 1 :(得分:0)
我突然发现了一个解决方案。 这是:
private static void GetAllToolTips(Form frm)
{
Type typeForm = frm.GetType();
FieldInfo fieldInfo = typeForm.GetField("components", BindingFlags.Instance | BindingFlags.NonPublic);
IContainer parent = (IContainer)fieldInfo.GetValue(frm);
List<ToolTip> ToolTipList = parent.Components.OfType<ToolTip>().ToList();
if (ToolTipList.Count > 0)
{
ToolTip tt = ToolTipList[0];
foreach (Control c in frm.Controls)
{
string text = tt.GetToolTip(c);
}
}
}
感谢您的帮助
答案 2 :(得分:0)
ToolTip1.GetToolTip(your_control)