日期:2014-05-18  浏览次数:21129 次

listview 与 tooltip
listView1_ItemMouseHover时我把tooltip弹出来。

toolTip1.Show("something",this.listView1,Cursor.Position.X + 10 - this.Left, Cursor.Position.Y + 10 - this.Top);

问题:鼠标从item离开后,如何隐藏tooltip?

谢谢

------解决方案--------------------
由于没有leave事件,所以你可以加一个timer控件来控制,让你的tooltip显示一定时间后自动消失。
参考
C# code

        private void listView1_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
        {
            toolTip1.Show("something", this.listView1, Cursor.Position.X + 10 - this.Left, Cursor.Position.Y + 10 - this.Top);
            timer1.Start();
            timer1.Interval = 1000;
            timer1.Tick+=new EventHandler(timer1_Tick);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            toolTip1.Hide(this.listView1);
        }

------解决方案--------------------
toolTip1.ReshowDelay = 100; 离开后??长时间隐藏
------解决方案--------------------
toolTip1.ReshowDelay = 100; 离开后 100ms 隐藏
------解决方案--------------------
相关的4个属性:
AutomaticDelay 获取或设置工具提示的自动延迟。 
AutoPopDelay 获取或设置当指针在具有指定工具提示文本的控件内保持静止时,工具提示保持可见的时间期限。 
InitialDelay 获取或设置工具提示显示之前经过的时间。 
ReshowDelay 获取或设置指针从一个控件移到另一控件时,必须经过多长时间才会出现后面的工具提示窗口。
------解决方案--------------------
this.toolTip2.Show("显示内容", 控件名字, 显示时间);

------解决方案--------------------
探讨
this.toolTip2.Show("显示内容", 控件名字, 显示时间);