Windows 窗体
一组用于开发图形用户界面的 .NET Framework 托管库。
142 个问题
在 WinForm 中,控件中的 ToolTip 控件。不知道它是什么类型的控件 如何从控件中获取 ToolTip 控件并调用其 RemoveAll 函数。 我想在每个控件中调用“ToolTip.RemoveAll()”,但是在不更改每个控件 的情况下,我想使用反射检索的 FieldInfo 来获取 tootip,但 FieldInfo 无法调用 RemoveAll
Note:此问题总结整理于:How do I get the ToolTip control and Call it RemoveAll
欢迎来到Microsoft问答,我们可以获取表单的组件列表,然后我们可以将组件转换为工具提示类型来调用 RemoveAll 方法。
下面是一个可以参考的代码示例。
private void button1_Click(object sender, EventArgs e)
{
var result = EnumerateComponents();
foreach (var item in result)
{
if(item is ToolTip)
{
ToolTip tip = (ToolTip)item;
tip.RemoveAll();
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
toolTip1.SetToolTip(button1, "Save changes");
toolTip1.SetToolTip(checkBox1, "Please choose");
}
private IEnumerable<Component> EnumerateComponents()
{
return from field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
where typeof(Component).IsAssignableFrom(field.FieldType)
let component = (Component)field.GetValue(this)
where component != null
select component;
}
如果答案是正确的解决方案,请单击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。
注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。