[WinForm]tooltip的问题。

shanminmin 2007-07-11 10:14:14
发现一个问题,我使用
this.toolTip1.Show("测试文本", this.button1,1000);

显示一个tooltip,但是发现出来的样式和鼠标放上自动出的不一样,鼠标放上自动出的是出现在控件的上方,而使用show出来的是出现在控件的下方。怎样能使show出来的也出现在控件的上方啊?

鼠标放上自动出的图片
http://shanmin2005.bokee.com/photo/singlePhoto.b?ID=7152190
使用show出来的图片
http://shanmin2005.bokee.com/photo/singlePhoto.b?ID=7152191
当指示的控件在最下方时,show会出现错位的情况
http://shanmin2005.bokee.com/photo/singlePhoto.b?ID=7152192
...全文
841 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzhoufeng888 2011-03-31
  • 打赏
  • 举报
回复
帮顶,我也想知道答案,最近一直被这个问题困扰。
LuoTongHua 2009-09-15
  • 打赏
  • 举报
回复
我觉得这样的不错你试试
this.toolTip1.Show("测试文本", this,this.button1.Location.X+50,this.button1.Location.Y+30,500);
LuoTongHua 2009-09-15
  • 打赏
  • 举报
回复
但是楼上的那样显示的位置还是有点不好,我觉得应该是修改
ToolTip显示的位置。而具体的位置因该是根据窗体算出来的...不过我还没有试过
但是这样的效果应该不错
this.toolTip1.IsBalloon = true;
this.toolTip1.ToolTipIcon = ToolTipIcon.Info;
this.toolTip1.Show("测试文本", this.button1, this.button1.Location,500);
shanminmin 2007-07-13
  • 打赏
  • 举报
回复
我自己想了一个办法,但是觉得挺牵强的。
就是每次都重新创建一个ToolTop:

ToolTip tt = new ToolTip();
tt.IsBalloon = true;
tt.Show("测试文本" + DateTime.Now.ToString(), this, this.button2.Location, 500);
jonnyyu 2007-07-12
  • 打赏
  • 举报
回复
好像没有现成的方法,如果允许作一些private reflection的话可以
反射取tooltip.Handle这个是Tooltip window的Handle,然后在Popup事件中用Win32API
SetWindowPosition来设置window的位置就可以了。
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
up
北京的雾霾天 2007-07-12
  • 打赏
  • 举报
回复
你使用SetToolTip方法就可以了.
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
jonnyyu(MindScape)
即试设置位置能改变弹出气泡的样式嘛?在我show的时候我直接指定一个位置不是和你说的用SetWindowPosition效果是一样的嘛?

lovesnow1573(天山寒雪)
我就是使用的vs2005,但是您说的这个只是设置显示文本,而我需要的是手动的显示这个气泡。

hbxtlhx(平民百姓-自已动手,丰衣足食)
现在的问题是,我指定位置可以,但是他的气泡方向是从下面显示的,你看看我贴中的图片。当然,我这个toolTip是需要在指定时间刻意显示的,用于提示用户。
北京的雾霾天 2007-07-12
  • 打赏
  • 举报
回复
如果你使用Show方法且,那么可以在这个方法的其它重载中找到显示位置参数并指定就可以在指定位置显示这个Tip,

如果要使用默认的显示,最好不使用Show方法而使用SetToolTip.

如果不是有意的立刻显示这个Tip,那么最好这两个方法都不调用,而是设置控件的在ToolTip上的显示字符串内容.这样系统会在合适的时候自动的显示ToolTip内容.
lovesnow1573 2007-07-12
  • 打赏
  • 举报
回复


如果要想 提示出现在 上方 : 这个方法是 VS2005 中的

this.toolTip1.SetToolTip(this.button1, "测试文本");
vainnetwork 2007-07-12
  • 打赏
  • 举报
回复
帮楼住顶了,这个问题问的不错
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
hbxtlhx(平民百姓-自已动手,丰衣足食)
我这边使用settolltip不显示,我使用的vs2005sp1


Macosx(咋就不结贴呢)
我现在遇到的问题就是这样,每次运行程序第一次是正确的,而以后的每次都显示在控件的下方了,并且在屏幕的最下面和最右边都不显错位的情况。
现在我需要的就是怎么能把第二次、第三次。。。。这些也显示在上面啊。
lovesnow1573 2007-07-12
  • 打赏
  • 举报
回复
this.toolTip1.SetToolTip(this.button1, "测试文本");
气泡中的图标
this.toolTip1.ToolTipIcon = ToolTipIcon.Warning;
是否以气泡方式显示
this.toolTip1.IsBalloon = true;
Macosx 2007-07-12
  • 打赏
  • 举报
回复
试了半天 发现第一次的方向和后边总是反着的 即使能控件位置也不正确
北京的雾霾天 2007-07-12
  • 打赏
  • 举报
回复
使用Show方法可以立刻显示,使用SetToolTip后也会立刻显示.
北京的雾霾天 2007-07-12
  • 打赏
  • 举报
回复
使用SetToolTip后会立刻显示出来的.
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
气泡==tooltip
lovesnow1573 2007-07-12
  • 打赏
  • 举报
回复
不明白 你说的 气泡 是什么 啊 ?
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
错了错了。我现在需要的是我想让气泡什么时候显示出来,气泡就什么时间显示出来!
shanminmin 2007-07-12
  • 打赏
  • 举报
回复
SetToolTip只是设置显示的文本,我现在需要气泡自动的显示出来啊~

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧