Winform Tooltip问题

时间:2012-10-19 15:35:43

标签: c# winforms

在我的应用程序中,我想添加工具提示。 在配置工具提示之后,我希望选项能够区分激活工具提示的标签以显示相应的文本,因此在工具提示功能中我尝试这样做但出现错误:“类型” Accessibility.IAccessible'在未引用的程序集中定义。您必须添加对程序集'Accessibility,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“

的引用
private void toolTip1_Popup(object sender, PopupEventArgs e)
{
    string st = e.AssociatedControl.AccessibilityObject.Parent.Name;
}

2 个答案:

答案 0 :(得分:2)

From MSDN

`To get or set the AccessibilityObject property, you must add a reference to the 
 Accessibility assembly installed with the .NET Framework`

所以你只需要使用项目引用添加这个引用。

当然PopupEventArgs包含绘制工具提示的控件,因此您只需使用e.AssociatedControl.Name

答案 1 :(得分:0)

您无需引用AccessibleObject。您只需获取AssociatedControl的名称,如下所示:

private void toolTip1_Popup(object sender, PopupEventArgs e)
{
    string st = e.AssociatedControl.Name;
}

至于你的子问题,要设置工具提示文本,你可以尝试这样的事情:

        private bool recursing;
        private void toolTip1_Popup(object sender, PopupEventArgs e)
        {
            Control c = e.AssociatedControl as Control;
            if (c != null)
            {
                if (!recursing)
                {
                    recursing = true;
                    toolTip1.SetToolTip(c, "totototo");
                    recursing = false;
                }
            }
        }

请注意,我们必须使用标志,因为调用SetToolTip会导致再次触发PopUp事件

干杯