管理

WinForm背景及热点区域的问题(回网友 Hill Robert )

Posted on 2009-11-09 09:21  lzhdim  阅读(1770)  评论(1编辑  收藏  举报

      周六上午收到一个网友Hill Robert 的邮件,说了下面的问题:

-----------------------------------------------------------------------------------

刘老师,您好!

我现在在学习.net winform程序的开发,碰到一些问题,却没有思路,想请您帮指导一下。
目前的问题是我想在form上使用背景图片来达到美化界面的效果,同时我想使其中的一些区域能够像web页面的热点区域一样。我看到很多管理软 件的界面,都采用了这样的形式。可是我不知道实现这样效果的程序,思路是怎样的?此外,当窗体的大小是可调节的情况下,我在选用图片时,应该怎么处理才能 保持界面样子。例如,我并不确定用户的屏幕大小,我的图片该怎样处理尺寸的问题来适应这样的情况。
很冒昧的向您请教,还请您白忙之中能给点指点,谢谢啦
-----------------------------------------------------------------------------------

 

       在此给该网友做下解释。无论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的位置和大小。

 

      好了,这个问题基本可以搞定了。其它相关的自己考虑一下吧。祝快乐 ``````

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved