周六上午收到一个网友Hill Robert 的邮件,说了下面的问题:
-----------------------------------------------------------------------------------
在此给该网友做下解释。无论WEB还是WIN,其实它们的控件相差不是非常大,当然,有些控件是它们自己特有的,有些WEB能做的事情,WIN不定能实现。但就你这个问题,其实还是挺简单的。下面以 VS2008为例做下说明。
首先,新建一个WIN窗口,设置它的 BackgroundImageLayout属性为 Zoom ,这个Zoom可以保证你的图片在窗口改变大小的时候自动调整背景图片的位置,以全部显示该图片,保证了该图片不变形,该属性的其它值可以参考。。。然后就是设置BackgroundImage属性了,就是设置窗口的背景图片,这个可以直接在设计时指定,也可以在程序运行时进行指定。这里说明下,也可以使用Picturebox来显示图片,这个可以设置这个控件Dock属性以适应窗口,其它与窗口设置差不多,可以参考。
然后,在该窗体上放置一个Label控件。设置该控件的Autosize属性为false。BackColor属性为 Web标签中的第一项 Transparent ,该项能保证Label背景透明。再设置该控件的Text属性为空字符串,即删除该文本。这时候在窗体上,该Label控件就显示为一个透明的矩形。这个矩形就是我们需要的窗体上的热点区域。调整该矩形(没办法,控件只能是矩形,下面再描述)以调整热点区域的位置,即图片上你想点击的热点位置。然后,设置该控件的Cursor属性为 Hand ,这样就更能体现热点区域了,鼠标移动到该区域将显示为一个手型,表示可以点击。双击该控件,在后台代码中添加点击Label控件时需要操作的内容,比如打开某个窗体等等。
接着,在窗体上放置一个ToolTip控件,设置其基本属性,比如TooltipTitle、TooltipIcon等。再切换到Label控件的属性,这时候多了一项属性 tooltip1上的tooltip ,设置该属性,则当鼠标移动到Label这个热点区域时,将显示提示信息。
最后,因为你的窗体大小可能会改变,所以,Zoom属性能保证图片的伸缩性。这时需要在窗体的Resize事件中对这些Label热点区域进行调整,即根据窗体的大小调整Label的位置和大小。
好了,这个问题基本可以搞定了。其它相关的自己考虑一下吧。祝快乐 ``````
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |